Excel VBA:テキストファイルへ書き込み|Open For Output As

Open For Output Asを使用しテキストファイルにデータを書き込むExcel VBAです。




Homeに戻る > Excel ファイル操作のTipsへ

テキストファイルとは、フォント指定や色などが含まれない文字だけのファイルです。

なのでファイルサイズも小さくてすむのでよく使います。

Excelからでも簡単に書き込みできるので、その使い方を掲載します。

書き込みは、OpenステートメントとOutputモードを使います。

OpenステートメントとOutputモードの構文

Open PathName For Output [Lock] As #FileNumber

  • PathName:(省略不可)フルパスのファイル名を指定します。
  • Lock:(省略可)他のプロセスからの操作をキーワードで指定します。キーワードは、Shared・Read・Write・Read Writeです。
  • FileNumber:(省略不可)1 ~ 511 の範囲で任意のファイル番号を指定します。使用可能なファイル番号を取得するには、FreeFile関数を使用します。

文字列を書き込むには Print #ステートメントを使います。

Print #ステートメントの構文

Print #FileNumber, [OutputList]

  • FileNumber:(省略不可)Openステートメントで指定したファイル番号を指定します。
  • OutputList:(省略可)書き込む文字列を指定します。セミコロンで区切ると、複数のデータ項目を連続し出力できます。

ファイルを閉じるにはCloseステートメントを使います。

Closeステートメントの構文

Close [#FileNumber1] [, #FileNumber2 …]

  • FileNumbert:(省略可)Openステートメントで指定したファイル番号を指定します。

関連する「テキストファイルの読込み|OpenとLineInputの使い方」を掲載していますので参照してください。



テキストファイルへ書き込むExcel VBA


ExcelシートとVBA入力画面

シートにコマンドボタンを配置します。

コマンドボタンを配置したシート

ExTextWriteプロシージャ、CommandButton1のクリックイベントを入力します。

VBE入力画面

VBAコードの解説

ExTextWriteプロシージャ
  • ファイル番号を格納する変数を宣言します。
  • FreeFile関数で使用可能なファイル番号を取得し、変数に代入します。
  • OpenステートメントとOutputモードでファイルを開きます。
  • Print #ステートメントで文字列を3行書き込みます。
  • Closeステートメントでファイルを閉じます。

CommandButton1のクリックイベント
  • ExTextWriteプロシージャを呼び出し実行します。

ExcelシートのVBAコード

Option Explicit

Private Sub ExTextWrite()
    Dim fno As Integer
    
    fno = FreeFile
    
    Open "c:\test1\test.txt" For Output As fno
    Print #fno, "Excel"
    Print #fno, "エクセル"
    Print #fno, "えくせる"
    Close fno
End Sub

Private Sub CommandButton1_Click()
    ExTextWrite
End Sub


実行結果 Excel画面

書き込みボタンをクリックすると、実行を開始します。

書き込みボタン

テキストファイルをメモ帳で開いた結果

Print #ステートメントで書き込んだ文字列が表示されています。

メモ帳


Excel Tipsメニューへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved