テキストファイルの書き込み EXCEL VBAサンプルコード

VBAサンプル

説明

機能

テキストファイルを新たに作成し、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というファイル名で書き込むことにします。
cap_20160813130330_0001

コードの実行

EX01を実行します。
cap_20160813130330_0002

“test.txt”が新規作成された

Cドライブのvbatest\sampleフォルダにtext.txtが新規作成されました。
cap_20160813130330_0003

ファイルの内容

3行のデータを含むテキストファイルです。
cap_20160813130330_0004

メモ

コードのサンプルとしてのわかりやすさを優先しているので、エラー処理を省略したり、ファイルのパスを直接書いたり、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関数

VBAレファレンス FreeFile関数

Openステートメント

準備中

Line Inputステートメント

準備中

Closeステートメント

準備中

Debug.Print

準備中

用語

イミディエイトウインドウ

準備中

ファイル番号

準備中

文字コード

準備中

改行コード

準備中

類似機能

ADODB.Streamオブジェクトによるファイル入出力
FileSystemObjectオブジェクトによるファイル入出力

参考サイト

Office VBA 言語リファレンス
https://msdn.microsoft.com/ja-jp/library/office/gg264383.aspx

タイトルとURLをコピーしました