OpenAsTextStreamメソッド

指定されたファイルを開き、ファイルの読取り、ファイルへの書込みまたはファイルへの追加に使用できるTextStreamオブジェクトを戻します。

構文

object.OpenAsTextStream([iomode, [format]])

引数:

  • Object: 必須。常にFileオブジェクトの名前。

  • Iomode: オプション。入力/出力モードを示します。ForReading、ForWritingまたはForAppendingの3つの定数のいずれかを指定できます。

  • Format: オプション。開いたファイルのフォーマットを示します。省略すると、デフォルトでファイルはUnicodeとして開きます。

    Note:

    Format引数は休止状態であり、VBスクリプトの動作と似せるために保持されています。効果はありません。作成されるファイルはすべてUnicodeフォーマットのみです。

設定

iomode引数には、次のいずれかの設定を指定できます:

Table 11-35 Iomode引数の設定

定数 説明
ForReading 1 読取り専用でファイルを開きます。このファイルへの書込みはできません。
ForWriting 2 書込み用にファイルを開きます。
ForAppending 8 ファイルを開き、ファイルの末尾に書き込みます。

備考

OpenAsTextStreamメソッドは、FileSystemObjectOpenTextFileメソッドと同じ機能を提供します。さらに、OpenAsTextStreamメソッドを使用するとファイルに書き込むことができます。

次のコードは、OpenAsTextStreamメソッドの使用方法を示しています:

例1

Function WriteToFile(filepath, text)
    Const ForWriting = 2
    Dim fso, f, ts
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile(filepath)
    Set ts = f.OpenAsTextStream(ForWriting)
    ts.Writeline text
    ts.Close
End Function

' Usage
WriteToFile "C:\Path\To\Your\File.txt", "This is a test message."

例2:

Function AppendToFile(filepath, text)
    Const ForAppending = 8
    Dim fso, f, ts
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile(filepath)
    Set ts = f.OpenAsTextStream(ForAppending)
    ts.WriteLine text
    ts.Close
End Function

' Usage
AppendToFile "C:\Path\To\Your\File.txt", "This is additional text."

例3:

Function WriteUnicodeToFile(filepath, text)
    Const ForWriting = 2
    Const TristateTrue = -1
    Dim fso, f, ts
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile(filepath)
    Set ts = f.OpenAsTextStream(ForWriting, TristateTrue)
    ts.Writeline text
    ts.Close
End Function

' Usage
WriteUnicodeToFile "C:\Path\To\Your\File.txt", "This is a Unicode test message."

例4:

Function ReadFromFile(filepath)
    Const ForReading = 1
    Dim fso, f, ts, content
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile(filepath)
    Set ts = f.OpenAsTextStream(ForReading)
    Do While Not ts.AtEndOfStream
        content = content & ts.ReadLine
    Loop    
    ts.Close
    ReadFromFile = content
End Function

' Usage
Dim fileContent
fileContent = ReadFromFile("C:\Path\To\Your\File.txt")
'Output: Content of the File