VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

VBA-Begriff: OpenAsTextStream-Methode

Beschreibung

Öffnet eine angegebene Datei und gibt ein TextStream-Objekt zurück, das zum Lesen aus, zum Schreiben in und zum Anhängen an die Datei verwendet werden kann.

Syntax

Objekt.OpenAsTextStream([E/A-Modus, [Format]])

Die Syntax der OpenAsTextStream-Methode besteht aus folgenden Teilen:

Teil Beschreibung
Objekt Erforderlich. Immer der Name eines File-Objekts.
E/A-Modus Optional. Gibt den Ein-/Ausgabemodus an. Dieser kann eine von drei Konstanten sein: ForReading, ForWriting oder ForAppending.
Format Optional. Einer der drei Tristate-Werte, mit dem das Format der geöffneten Datei angegeben wird. Wird für den Wert keine Angabe gemacht, wird die Datei im ASCII-Format geöffnet.

Einstellungen

Das Argument E/A-Modus kann eine der folgenden Einstellungen haben:

Konstante Wert Beschreibung
ForReading 1 Öffnet eine Datei nur zum Lesen. Sie können nicht in diese Datei schreiben.
ForWriting 2 Öffnet eine Datei zum Schreiben. Wenn es bereits eine Datei mit dem gleichen Namen gibt, wird der Inhalt der früheren Datei überschrieben.
ForAppending 8 Öffnet eine Datei und schreibt am Ende dieser.

Das Argument Format kann eine der folgenden Einstellungen haben:

Konstante Wert Beschreibung
TristateUseDefault –2 Öffnet die Datei mit den Systemvorgaben.
TristateTrue –1 Öffnet die Datei als Unicode-Datei.
TristateFalse   0 Öffnet die Datei als ASCII-Datei.

Anmerkungen

Die OpenAsTextStream-Methode bietet die gleichen Funktionsmerkmale wie die OpenTextFile-Methode des FileSystemObject. Darüber hinaus kann mit der OpenAsTextStream-Methode in eine Datei geschrieben werden.

Der folgende Code veranschaulicht die Verwendung der OpenAsTextStream-Methode:

Sub TextStreamTest
    Const ForReading = 1, ForWriting = 2, ForAppending = 3
    Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
    Dim fs, f, ts, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    fs.CreateTextFile "test1.txt"            'Erstellen einer Datei
    Set f = fs.GetFile("test1.txt")
    Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)
    ts.Write "Hallo Welt"
    ts.Close
    Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
    s = ts.ReadLine
    MsgBox s
    ts.Close
End Sub