Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Shell.Application

Forumthread: Shell.Application

Shell.Application
ing.grohn
Hallo Forum,
ich hab jetzt einige Dinge mit der "Shell.Application" gemacht.
Leider hab ich nirgendwo eine entsprechende Beschreibung hierzu gefunden.
Warauf ich gestossen bin ist ein "MS Win 2000 Scripting Handbuch". Aber das scheint ja nur was ähnliches zu sein.
Hat jemand Infos/Quellen über diese Shell.Application? (möglichst auf deutsch)
Für Antworten bereits hier vielen Dank
Mit freundlichen Grüßen
Albrecht#
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Shell.Application
11.10.2011 23:21:29
Nepumuk
Hallo,
was willst du denn wissen? Shell.Application ist nichts anderes als der Zugriff auf die Funktionen der shell32.dll. In Excel musst du nicht den Umweg über das Application-Objekt machen sondern durch den Import der entsprechenden API-Funktion direkt darauf zugreifen. Das ist auch viel schneller. Die Shell Application wurde nur geschaffen damit in WSH darauf zugrgriffen werden kann, denn in WSH kannst du keine API-Funktionen importieren.
Gruß
Nepumuk
Anzeige
AW: Shell.Application
12.10.2011 10:50:18
ing.grohn
Hallo Nepumuk,
irgendwo ist doch beschrieben, das es sowas wie ".GetDetailsOf(" gibt (u.ä.), das denkst Du Dir ja nicht aus. Und darum dachte ich, vielleicht gibts ja ne Beschreibung wo das alles drinne steht.
Mit freundlichen Grüßen
Albrecht
AW: Shell.Application
12.10.2011 13:42:49
Nepumuk
Hallo,
einmal gegoogelt und schon beim 1. Link fündig geworden (ok, man muss wissen wonach man sucht)
http://msdn.microsoft.com/en-us/library/windows/desktop/bb776890(v=vs.85).aspx
Du findest da eine Tabelle (The ProgID for each of the Shell objects is shown in the following table.). In dieser Tabelle das Folder-Objekt. Wenn du auf den Link klickst findest du desssen Eigenschaften und Methoden.
Gruß
Nepumuk
Anzeige
AW: Shell.Application
12.10.2011 15:06:21
ing.grohn
Hallo Nepumuk,
Du kannst versichert sein, dass ich gegoogelt habe!!
Aber ... (mehr sag ich nicht)
Vielen Dank
Einen schönen Mittwoch und freundliche Grüße
Albrecht
;
Anzeige

Infobox / Tutorial

Arbeiten mit Shell.Application in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklicke auf VBAProject (DeineArbeitsmappe) und wähle Einfügen > Modul.
  3. Erstelle eine Variable für Shell.Application:
    Dim shellApp As Object
    Set shellApp = CreateObject("Shell.Application")
  4. Verwende die Shell.Application-Methoden: Du kannst nun Methoden wie .Namespace() oder .Open() verwenden, um auf Systemfunktionen zuzugreifen.

Häufige Fehler und Lösungen

  • Fehler: "Benutzerdefinierte Funktion kann nicht gefunden werden"

    • Lösung: Stelle sicher, dass der Verweis auf die Shell.Application korrekt gesetzt ist. Nutze CreateObject("Shell.Application") und überprüfe, ob du die richtige Methode verwendest.
  • Fehler: "Objektvariable oder With-Blockvariable nicht gesetzt"

    • Lösung: Überprüfe, ob die shellApp-Variable korrekt initialisiert wurde. Stelle sicher, dass du Set shellApp = CreateObject("Shell.Application") verwendest.

Alternative Methoden

Wenn du nicht die Shell.Application-Objekte verwenden möchtest, kannst du auch direkt auf die Windows-Shell zugreifen, indem du API-Funktionen importierst. Dies kann in speziellen Fällen schneller sein. Hier ist ein Beispiel, wie du das machen kannst:

Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
    ByVal hwnd As LongPtr, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long

Sub OpenFolder()
    ShellExecute 0, "open", "C:\DeinOrdner", vbNullString, vbNullString, 1
End Sub

Praktische Beispiele

  • Öffne einen Ordner:

    shellApp.Open "C:\DeinOrdner"
  • Liste der Dateien in einem Ordner anzeigen:

    Dim folder As Object
    Set folder = shellApp.Namespace("C:\DeinOrdner")
    MsgBox folder.Items.Count & " Dateien gefunden."
  • Details einer Datei abrufen:

    Dim fileDetails As String
    fileDetails = folder.GetDetailsOf(folder.Items(0), 0) ' Name der ersten Datei
    MsgBox fileDetails

Tipps für Profis

  • Nutze die Shell.Application-Methoden effektiv, um komplexe Aufgaben zu automatisieren, wie das Kopieren oder Verschieben von Dateien.
  • Experimentiere mit vba shell application für spezifische Aufgaben wie das Starten von Programmen oder das Anzeigen von Dialogfeldern.
  • Verwende Error-Handling in deinem VBA-Code, um mögliche Laufzeitfehler zu vermeiden.

FAQ: Häufige Fragen

1. Was ist Shell.Application? Shell.Application ist ein VBA-Objekt, das Zugriff auf die Funktionen von shell32.dll ermöglicht. Es wird häufig in Excel verwendet, um mit dem Dateisystem zu interagieren.

2. Wie kann ich Shell.Application in Excel verwenden? Du kannst Shell.Application in Excel verwenden, indem du ein neues VBA-Modul erstellst und CreateObject("Shell.Application") verwendest, um auf verschiedene Methoden zuzugreifen.

3. Gibt es eine Dokumentation für Shell.Application? Ja, die MSDN-Dokumentation bietet umfassende Informationen über die Methoden und Eigenschaften von Shell.Application. Du kannst sie hier finden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige