ファイルを書き込む
ファイルを書き込むためには、まずファイルを書き込みモードで開く必要があります。これにはOpenTextFileという関数を使います。注意しなければならないのは、このOpenTextFileという関数は、FileSystemObjectに付属する関数である、ということです。つまりFileSystemObject経由でしかこの関数は使えません。こういう関数を「メソッド」といいます。具体的には先ほど取得したFileSystemObjectの変数名(オブジェクト名)にピリオドをつけて、その後に関数を呼び出すようにします。
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("C:\work\test.txt", 2 , True)
OpenTextFileはこれまたTextStreamというオブジェクトを返します。それを変数 file に代入しています。OpenTextFileの最初の引数は書き込むファイル名です。2番目の引数で 2 を指定しているのは書き込みモードで開くことを表しています。三番目の引数で Trueとしているのは、これはファイルを上書きするかどうかです。上書きする場合には Trueを、しない場合には Falseを指定します。
注意!:上書きする場合には、既存のファイルは消えてしまいますのでファイル名には十分注意してください。また、書き込むフォルダは存在するフォルダにしてください(あらかじめフォルダを新規に作っておくと良いでしょう)。
では、いよいよファイルに書き込みを行います。書き込みはTextStreamオブジェクトのWriteLineというメソッドを使います。これで一行書き込まれます。
file.WriteLine "書き込みのテストです。"
何行書き込んでもかまいません。書き込んだら、ファイルを閉じます。これにはTextStreamオブジェクトのCloseというメソッドを使います。
file.Close
これでファイルの書き込みが完了します。以上をまとめてみます。
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("C:\work\test.txt", 2 , True) file.WriteLine "書き込みのテストです。" file.Close
実行してもファイルに書き込むだけですので特に何も表示されません。
実行した後、書き込んだファイルをメモ帳などで開いて正しく書き込めているか見てみてください。
問題11-3:
ファイルに1行ずつ1~10までの文字を書き込むプログラムを作ろう。