Textdateien mit dem FileSystemObject

Textdateien öffnen, lesen, schreiben und schließen Sie normalerweise mit den Methoden Open, Get, Print, Input oder Close der VBA-Bibliothek. Es gibt jedoch auch noch eine Alternative, die Sie sich mit einem einfachen Verweis erschließen können: Das FileSystemObject und das darin enthaltene Textstream-Objekt. Wie Sie damit komfortabel Textdateien erstellen, bearbeiten, lesen und löschen, erfahren Sie in diesem Beitrag.

FileSystemObject verfügbar machen

Das FileSystemObject-Objekt steckt in der Bibliothek Microsoft Scripting Runtime. Sie können auf dieses Objekt zugreifen, indem Sie einen Verweis auf dieses Bibliothek setzen (Early Binding) oder indem Sie diesen Verweis erst zur Laufzeit per Late Binding herstellen.

Wenn Sie über den Verweise-Dialog (s. Bild 1) einen Verweis auf diese Bibliothek erstellen, können Sie die Methoden und Eigenschaften dieser Bibliothek per IntelliSense referenzieren und die Konstanten ausschreiben:

pic005.png

Bild 1: Verweis auf die Bibliothek Microsoft Scripting Runtime

Dim objFSO As Scripting.FileSystemObject
Set objFSO = New Scripting.FileSystemObject

Anderenfalls ersetzen Sie in den Beispielen die Objekttypen der Deklarationen durch Object und verwenden diese Anweisung zur Instanzierung:

Dim objFSO As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")

Auch wenn das Resultat keinen Verweis auf diese Bibliothek enthalten soll, können Sie zunächst mit Early Binding arbeiten und so IntelliSense nutzen, was ein großer Vorteil ist – gerade, wenn Sie sich in einer Bibliothek noch nicht gut auskennen.

Später entfernen Sie dann den Verweis und kompilieren das VBA-Projekt, um zu ermitteln, an welchen Stellen änderungen vorzunehmen sind, um diese auf Late Binding umzustellen.

Textdateien erstellen

Das FileSystemObject-Objekt erlaubt das Erstellen von Textdateien. Dies erledigen Sie mit der Methode CreateTextfile des Objekts. Wenn die Textdatei nach der Erstellung etwa mit Text gefüllt werden soll, tragen Sie den Verweis auf die neue Textdatei am besten gleich in eine Objektvariable des Typs Textstream ein.

Dies ist übrigens eine interessante Alternative zur Dateinummernvergabe mit der Open-Methode unter VBA – Sie speichern den Verweis hier, etwas zeitgemäßer, in einer entsprechenden Objektvariablen:

Public Sub TextdateiErstellen()
    Dim objFSO As Scripting.FileSystemObject
    Dim objTextstream As Scripting.TextStream
    Set objFSO = New Scripting.FileSystemObject
    Set objTextstream = objFSO.CreateTextFile(
    CurrentProject.Path & "\Text.txt")
    With objTextstream
        .Write "Hallo!"
    End With
End Sub

Das Textstream-Objekt bietet außerdem einige Methoden, mit denen Sie die Textdatei bearbeiten oder auslesen können.

Textdatei öffnen

Bevor Sie eine Textdatei mit den Methoden des FileSystemObject-Objekts auslesen oder bearbeiten können, öffnen Sie diese und holen sich einen Verweis auf die Datei – oder Sie erstellen diese wie oben beschrieben einfach neu.

Zum Öffnen einer Textdatei verwenden Sie die OpenTextFile-Methode. Diese erwartet als ersten Parameter den Namen der Textdatei und als zweiten den Zugriffsmodus, für den es die folgenden drei Werte gibt:

  • ForAppending: Öffnet die Datei und bereitet diese für das Anhängen von Text an den bestehenden Inhalt vor.
  • ForReading: Öffnet die Datei schreibgeschützt zum Einlesen von Text.
  • ForWriting: Öffnet die Datei und leert diese, damit sie neu gefüllt werden kann.

Mit dem dritten Parameter namens Create können Sie festlegen, ob die Datei neu angelegt werden soll, wenn sie noch nicht vorhanden ist.

Stellen Sie Create auf False ein und ist die angegebene Datei nicht vorhanden, löst dies einen Fehler aus. Nach dem Öffnen und Lesen oder Bearbeiten schließen Sie die Datei mit der Close-Methode wieder.

Textdatei mit Text füllen

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

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar