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).
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).
Bild 2: FileSystemObject mit IntelliSense nutzen
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