Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » VBAでテキストファイル出力-Openステートメント・Print #ステートメント

VBAでテキストファイル出力-Openステートメント・Print #ステートメント

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「excel vba ファイル出力」
「excel マクロ ファイル出力 サンプル」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

テキストファイルを出力するExcel VBA(Visual Basic for Applications)のサンプルを探している方による検索です。

2016年現在、いくつかの実装方法が考えられますが、他のライブラリーを必要としない、VBAのステートメントだけを使う、昔ながらの方法をここではご紹介しておきます。

[スポンサードリンク]

テキストファイルを出力するサンプルマクロ

以下のSubプロシージャを実行すると、アクティブなワークシートのA1:A10セルのデータが、アクティブなブックと同じフォルダーに「output.txt」というファイル名で出力されます。

Sub ファイル出力を行う()
 Dim f_path As String ' 出力ファイルのフルパス
 Dim f_num As Integer ' ファイル番号
 Dim i As Long

 f_path = ActiveWorkbook.Path & "\output.txt"
 f_num = FreeFile

 Open f_path For Output As f_num
 For i = 1 To 10
  Print #f_num, Cells(i, "A").Value
 Next i
 Close f_num
End Sub

アクティブブックと同じフォルダーに、「output.txt」というファイルがなければ、新規に作成して出力が行われ、既に存在していた場合には上書きします。

読み込む場合との違い

テキストファイルを読み込むマクロを既にご紹介しています。
違いは、ファイルをOpenする部分と、読み込むのか書き込むのか、です。

読み込む場合、Openする部分が、
 Open f_path For Input As f_num
でしたが、今回は、
 Open f_path For Output As f_num
です。

読み込むマクロでは読み込み部分が、
  Line Input #f_num, rcd
でしたが、今回は
  Print #f_num, Cells(i, "A").Value
となっています。

既存のファイルに追記を行うサンプルマクロ

以下のようなSubプロシージャにすると、既にファイルが存在していた場合には、追記が行われます。

Sub ファイルに追記する()
 Dim f_path As String ' 出力ファイルのフルパス
 Dim f_num As Integer ' ファイル番号
 Dim i As Long

 f_path = ActiveWorkbook.Path & "\output.txt"
 f_num = FreeFile

 Open f_path For Append As f_num
 For i = 1 To 10
  Print #f_num, Cells(i, "A").Value
 Next i
 Close f_num
End Sub

先ほどの上書きをするSubプロシージャで、
  Open f_path For Output As f_num
となっていた行が、
  Open f_path For Append As f_num
になっている部分だけが異なります。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » VBAでテキストファイル出力-Openステートメント・Print #ステートメント

「マクロのサンプル」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.