説明
機能
テキストファイルを新たに作成し、1行ずつ書き込むサンプルです。
(文字コード:Shift-JIS、改行コード:CRLF)
ファイルを書き込む方法はたくさんありますが、このサンプルは、もっとも簡単な例です。
補足・注意事項
このサンプルコードでは、入力するテキストファイルの文字コードがShift-JIS形式で、改行コードがCRLFになります。
他の文字コード、改行コードのファイルのサンプルは、今後追加する予定です。
使用例
テキストファイルを新たに作成して1行ずつ書き込む
コード
Sub Ex01() Dim fileno As Integer ' ファイル番号 'ファイル番号の取得 fileno = FreeFile '出力ファイルの処理(新規) Open "c:\vbatest\sample\test.txt" For Output As #fileno Print #fileno, "あああ" Print #fileno, "いいい" Print #fileno, "ううう" Close #fileno End Sub
解説
変数定義
3:変数定義(ファイル番号を整数型で定義)
書き込みの準備
6:空いているファイル番号の取得して3で定義した変数にセット
ファイルの書き込み
9:書き込むファイルをオープンする
10:1行書き込む(”あああ”と書き込み)
11:1行書き込む(”いいい”と書き込み)
12:1行書き込む(”ううう”と書き込み)
後始末
13:オープンしているファイルをクローズ
実行例
実行するとファイル”test.txt”が新規作成されます。
書き込むファイルのパス
Cドライブのvbatest\sampleフォルダにtext.txtというファイル名で書き込むことにします。
コードの実行
EX01を実行します。
“test.txt”が新規作成された
Cドライブのvbatest\sampleフォルダにtext.txtが新規作成されました。
ファイルの内容
3行のデータを含むテキストファイルです。
メモ
コードのサンプルとしてのわかりやすさを優先しているので、エラー処理を省略したり、ファイルのパスを直接書いたり、Print文で適当に3行書いたりしていますが、流用する場合は、シート上にパスを記述出来るようにするなど、適宜修正するとよいと思います。
補足情報
ワンポイントアドバイス
テキストファイルを作成する際の2つのモード
Openステートメントを使ってテキストファイルを作成するとき、以下の2つのモードがあります。
Outputモード(新規作成)
新規でファイルを作成して書き込みを行います。同名のファイルがあれば上書きします。
Appendモード(追記)
既存のファイルの最終行の後に追加で書き込みを行います。既存ファイルがなければ新たに作成します。
このページでは、Outputモードで作成していますので、同名のファイルが存在した場合は上書きされます。
ファイル番号
このページのサンプルのようなOpenステートメントで開くファイルのプログラミングでは、ファイル番号を使います。
ファイル番号は、個々のファイルに付ける番号であり、Openしたときのファイル番号は、Input、Print、Closeなど、ファイルにアクセスするステートメントを記述するときも同様に記述します。複数ファイルを取り扱うプログラミングを行う際には、個々の命令で記述するファイル番号を間違えないようにしましょう。
2つのファイルを取り扱うプログラミングの例
入力ファイルのファイル番号を”inputfileno”、出力ファイルのファイル番号を”outputfileno”で定義した例です。
inputfileno = FreeFile Open "inputfile" For Input As #inputfileno outputfileno = FreeFile Open "outputfile" For Output As #outputfileno Line Input #inputfileno, buf Print #outputfileno, buf Close #inputfileno Close #outputfileno
VBAリファレンス
サンプルコード内で使用しているステートメントや関数の詳細は、以下のページを参照してください。
FreeFile関数
Openステートメント
準備中
Line Inputステートメント
準備中
Closeステートメント
準備中
Debug.Print
準備中
用語
イミディエイトウインドウ
準備中
ファイル番号
準備中
文字コード
準備中
改行コード
準備中
類似機能
ADODB.Streamオブジェクトによるファイル入出力
FileSystemObjectオブジェクトによるファイル入出力
参考サイト
Office VBA 言語リファレンス
https://msdn.microsoft.com/ja-jp/library/office/gg264383.aspx