FSO OpenAsTextStreamメソッド定数とサンプルコード

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

OpenAsTextStream メソッド

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

  • object.OpenAsTextStream([iomode, [format]])
  • 引数

  • object
  • 必ず指定します。File オブジェクトの名前を指定します。
  • iomode
  • 省略可能です。入出力モードを指定します。指定する値については、次の「設定値」を参照してください。
  • format
  • 省略可能です。開くファイルの形式を示す値を指定します。指定する値については、次の「設定値」を参照してください。省略した場合、ASCII ファイルとしてファイルが開かれます。
  • 設定値

引数 iomode の設定値は次のとおりです。
定数 内容
ForReading 1 ファイルを読み取り専用として開きます。このファイルには書き込むことができません。
ForWriting 2 ファイルを書き込み専用として開きます。既存ファイルがある場合、以前の内容は上書きされます。
ForAppending 8 ファイルを開き、ファイルの最後に追加して書き込みます。
引数 format の設定値は次のとおりです。
定数 内容
TristateUseDefault -2 システム デフォルトを使ってファイルを開きます。
TristateTrue -1 ファイルを Unicode ファイルとして開きます。
TristateFalse 0 ファイルを ASCII ファイルとして開きます。

解説

OpenAsTextStream メソッドは、FileSystemObject オブジェクトの OpenTextFile メソッドとほぼ同じ機能を提供します。OpenTextFile メソッドと異なるのは、ファイルを追加書き込みではなく書き込み専用に開くことができます。

サンプル

Option Explicit


Function FSOTextStream(ByVal txtPath As StringByVal Character As String)
'*******************************************
'指定したファイルの読取・追加・書込をする
'*******************************************

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0

Dim fso, f, ts

Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile txtPath  ' Create a file.
Set f = fso.GetFile(txtPath)
Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)
ts.Write Character
ts.Close
Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
FSOTextStream = ts.ReadLine
ts.Close

End Function


Private Sub test()
FSOSetDLL 'FSO参照設定
Dim p As String
Dim m As String
Dim s As String
p = ThisWorkbook.Path
m = "test.txt"
s = "テスト"
Debug.Print FSOTextStream(p & "\" & m, s)
'テスト
End Sub

 

2000年01月01日|[VBサンプルコード]:[FSO]