
FileオブジェクトのOpenAsTextStreamメソッドについてです。
Menu
OpenAsTextStreamメソッド
概要
指定したファイルを開き、読取、書込、追加書込に使用できるTextStreamオブジェクトを返します。
構文
FileObject.OpenAsTextStream([iomode,[format]])
[ ]は省略可
OpenAsTextStreamメソッドの引数
引 数 | 必須 / 省略可 | 詳 細 |
入出力モード | 省略可 | 入出力のモードを指定。 |
文字コード | 省略可 | 開くファイルの文字コードを指定。 |
入出力モードの引数の詳細
定 数 | 値 | 詳 細 |
ForReading | 1 | ファイルを読み取り専用として開きます。 |
ForWriting | 2 | ファイルを書き込み専用(上書)として開きます。 |
ForAppending | 8 | ファイルを書き込み専用(追記)として開きます。 |
文字コードの引数の詳細
定 数 | 値 | 詳 細 |
TristateUseDefault | -2 | システムの既定の設定でファイルを開きます。 |
TristateTrue | -1 | Unicode形式でファイルを開きます。 |
TristateFalse | 0 | Ascii形式でファイルを開きます(既定値) |
VBAサンプル
ファイルに書き込む(上書き)
FileオブジェクトのOpenAsTextStreamメソッドを使用するには、FileSystemObjectのGetFileメソッドでFileオブジェクトが返るので、FileオブジェクトのOpenAsTextStreamメソッドで入出力モードを上書き(ForWriting)にしてファイルを開くとTextStreamオブジェクトが返るので、TextStreamオブジェクトのWriteメソッドで書き込みます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Sub test() '変数 Dim fso As Object, ts As Object Dim f As File 'FileSystemObjectをセット Set fso = CreateObject("Scripting.FileSystemObject") 'FileSystemObjectのGetFileメソッドでファイルパスを指定してFileオブジェクトをセット Set f = fso.GetFile("D:\sample\test.txt") 'FileブジェクトのOpenAsTextStreamで書込に設定してTextStreamオブジェクトをセット Set ts = f.OpenAsTextStream(ForWriting) 'TextStreamオブジェクトのWriteメソッドで書き込み ts.Write "Hello" 'TextStreamオブジェクトのCloseソッドでファイルを閉じる ts.Close End Sub |
もしくは下記みたいな短縮する書き方もあります。
1 2 3 4 5 6 7 8 9 | Sub test2() 'Objectを宣言 Dim fso As Object 'FileSystemObjectをセット Set fso = CreateObject("Scripting.FileSystemObject") 'ファイルに書き込む fso.GetFile("D:\sample\test.txt").OpenAsTextStream(2).Write "hello": Close End Sub |
【結果】
test.txt(テキストファイル)に上書きされます。