
FileSystemObjectのOpenTextFileメソッドについてです。
Menu
OpenTextFileメソッド
概要
ファイルを読込,上書き,追記のモードを設定して開き、TextStreamオブジェクトを返します。
構文
FileSystemObject.OpenTextFile (filename, [ iomode, [ create, [ format ]]])
[ ]は省略可
OpenTextFileメソッドの引数
引 数 | 必須 / 省略可 | 詳 細 |
ファイル名 | 必須 | ファイルパスを指定。 |
入出力モード | 省略可 | 入出力のモードを指定。 |
ファイル作成 | 省略可 | ファイルが存在しない場合、ファイルを作成するかをBool値で指定。 |
文字コード | 省略可 | 開くファイルの文字コードを指定。 |
入出力モードの引数の詳細
定 数 | 値 | 詳 細 |
ForReading | 1 | ファイルを読み取り専用として開きます。 |
ForWriting | 2 | ファイルを書き込み専用(上書)として開きます。 |
ForAppending | 8 | ファイルを書き込み専用(追記)として開きます。 |
文字コードの引数の詳細
定 数 | 値 | 詳 細 |
TristateUseDefault | -2 | システムの既定の設定でファイルを開きます。 |
TristateTrue | -1 | Unicode形式でファイルを開きます。 |
TristateFalse | 0 | Ascii形式でファイルを開きます(既定値) |
VBAサンプル
ファイルを読み込む
FileSystemObjectのOpenTextFileメソッドで指定したファイルパスを入力してForReading(読込モード)で開くと、TextStreamオブジェクトが使用できるようになります。
TextStreamオブジェクトのReadAllメソッドを使用するとファイルを読込ができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 | Sub ファイル読込() '変数 Dim fso As Object, ts As Object 'オブジェクト変数にセット Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.OpenTextFile("D:\sample\test.txt", ForReading) '読込モード '読み込んで閉じる Debug.Print ts.ReadAll ts.Close End Sub |
ファイルを上書き
FileSystemObjectのOpenTextFileメソッドで指定したファイルパスを入力してForWriting(上書モード)で開くと、TextStreamオブジェクトが使用できるようになります。
TextStreamオブジェクトのWriteLineメソッドを使用すると、ファイルに上書きができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 | Sub ファイル上書() '変数 Dim fso As Object, ts As Object 'オブジェクト変数にセット Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.OpenTextFile("D:\sample\test.txt", ForWriting) '上書きモード '上書きして閉じる ts.WriteLine ("hello") ts.Close End Sub |
ファイルに追記
FileSystemObjectのOpenTextFileメソッドで指定したファイルパスを入力してForAppending(追記モード)で開くと、TextStreamオブジェクトが使用できるようになります。
textStreamオブジェクトのWriteLineメソッドを使用すると、ファイルに追記できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 | Sub ファイル追記() '変数 Dim fso As Object, ts As Object 'オブジェクト変数にセット Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.OpenTextFile("D:\sample\test.txt", ForAppending) '追記モード '読み込んで閉じる ts.Write ("こんにちわ") ts.Close End Sub |
ファイルが存在する時
FileSystemObjectのOpenTextFileメソッドで指定したファイルパスを入力して、ForWriting(上書モード)とTrue指定でファイルが存在しない場合はファイルを作成し、TextStreamオブジェクトが使用できるようになります。
TextStreamオブジェクトのWriteLineメソッドを使用すると、新規作成したファイルに上書きができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 | Sub ファイルがない場合のファイル作成() '変数 Dim fso As Object, ts As Object 'オブジェクト変数にセット Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.OpenTextFile("D:\sample\test.txt", ForWriting, True) 'Trueを指定 '上書きして閉じる ts.WriteLine ("hello") ts.Close End Sub |