FileSystemObject を使ったテキストファイルへの書き込み方法を解説する。
新規作成、上書き、追記、それぞれの方法を載せる。
ファイルを新規作成する
Dim fso Set fso = CreateObject("Scripting.FileSystemObject") 'テキストファイルを作成する Dim ts Set ts = fso.CreateTextFile("C:\tmp\TextFile1.txt") '文字列を書き込む ts.WriteLine "Hello World!" 'テキストファイルを閉じる ts.Close Set ts = Nothing Set fso = Nothing
テキストファイルの新規作成の流れ。
FileSystemObject.CreateTextFile メソッドでファイルを新しく作る。
→ TextStream オブジェクトが返る。TextStream.WriteLine メソッドで文字列を書き込む。
WriteLine は文字列の末尾にプラットフォーム固有の改行文字を自動で追加する。
もし改行文字がいらなければ Write メソッドを使う。TextStream.Close メソッドでファイルを閉じる。
既存のファイルを上書きする
Dim fso Set fso = CreateObject("Scripting.FileSystemObject") 'テキストファイルを書き込みモードで開く '(第2引数の 2 は上書きを意味する) Dim ts Set ts = fso.OpenTextFile("C:\tmp\TextFile1.txt", 2) '文字列を書き込む ts.WriteLine "Overwrite Hello World!" 'テキストファイルを閉じる ts.Close Set ts = Nothing Set fso = Nothing
上書きモードでファイルを開くのがポイント。
あとは新規作成時と変わりない。
既存のファイルに追記する
Dim fso Set fso = CreateObject("Scripting.FileSystemObject") 'テキストファイルを書き込みモードで開く '(第2引数の 8 は追記を意味する) Dim ts Set ts = fso.OpenTextFile("C:\tmp\TextFile1.txt", 8) '文字列を書き込む ts.WriteLine "Append Hello World!" 'テキストファイルを閉じる ts.Close Set ts = Nothing Set fso = Nothing
追記モードでファイルを開くのがポイント。
あとは新規作成時と変わりない。
最近の主流である UTF-8 は文字化けしてしまうので注意しなければならない。