Das FileSystemObject: Verzeichnisse

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Die VBA-eigenen Befehle wie Dir, MkDir, Kill, Copy und so weiter erlauben grundlegende Dateioperationen. Wenn es etwas komfortabler sein darf, gibt es jedoch noch andere Möglichkeiten. Eine davon ist die Klasse FileSystemObject, die Sie in der Bibliothek Microsoft Scripting Runtime finden. Dieser Artikel zeigt, welche Möglichkeiten diese Bibliothek bietet.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1902_FileSystemObject.accdb.

Late Binding und Early Binding

Wie bei vielen anderen Bibliotheken können Sie auch die Elemente der Bibliothek Microsoft Scripting Runtime per Late Binding oder per Early Binding nutzen. Die Version mit Late Binding verwendet keinen Verweis und bindet die Bibliothek erst beim Aufruf ein. Das könnte etwa wie folgt aussehen:

Public Sub FSOLateBinding()
    Dim objFSO As Object
    Set objFSO = _
        CreateObject("Scripting.FileSystemObject")
    With objFSO
        Debug.Print .FolderExists("c:")
    End With
End Sub

Hier deklarieren wir die Objektvariable mit dem Datentyp Object. Das hat den Nachteil, dass wir nicht per IntelliSense auf die Elemente dieser Klasse zugreifen können. In diesem Beispiel nutzen wir die FolderExists-Funktion, um zu prüfen, ob das Verzeichnis c: vorhanden ist.

Wenn Sie lieber mit IntelliSense arbeiten, was beim Programmieren wesentlich komfortabler ist, fügen Sie einen Verweis auf die Bibliothek Microsoft Scripting Runtime hinzu. Dazu öffnen Sie den VBA-Editor, etwa mit der Tastenkombination Alt + F11, und aktivieren dann mit dem Menübefehl Extras|Verweise die Anzeige des Verweise-Dialogs für das aktuelle VBA-Projekt. Hier wählen Sie den Eintrag Microsoft Scripting Runtime aus und aktivieren diesen (siehe Bild 1).

Verweis auf die Bibliothek Microsoft Scripting Runtime

Bild 1: Verweis auf die Bibliothek Microsoft Scripting Runtime

Danach können Sie die Objektvariable für die Klasse FileSystemObject auch mit diesem Datentyp deklarieren:

Public Sub FSOEarlyBinding()
    Dim objFSO As FileSystemObject
    Set objFSO = New FileSystemObject
    With objFSO
        Debug.Print .FolderExists("c:")
    End With
End Sub

Ein weiterer Unterschied ist, dass Sie nun die Methoden der Klasse per IntelliSense anzeigen können (siehe Bild 2). Alternativ können Sie sich natürlich auch über den Objektkatalog einen überblick über die Methoden und Eigenschaften des Objekts einer Bibliothek verschaffen. Den Objektkatalog blenden Sie mit der Tastenkombination F2 ein. Um die Elemente der gewünschten Bibliothek zu betrachten, wählen Sie diese oben im Kombinationsfeld aus. Dann können Sie unten die entsprechende Klasse anklicken und finden alle Element im rechten Listenfeld vor (siehe Bild 3).

FileSystemObject mit IntelliSense nutzen

Bild 2: FileSystemObject mit IntelliSense nutzen

Per Objektkatalog in den Methoden einer Klasse stöbern

Bild 3: Per Objektkatalog in den Methoden einer Klasse stöbern

Elemente der FileSystemObject-Klasse

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar