ExcelのVBAでテキストファイルを出力する方法
ExcelのVBAでテキストファイルを出力する方法を考える。
目次
一つずつ処理する方法
次はアクティブシートのセルA1からA10の内容を「出力結果.txt」というテキストファイルに出力する場合のコードである。
この例ではセルの中身を単純にそのまま書き出しているが、実際には何らかの変換を施して使うのであろう。
Sub テキストとして出力()
fnsave = "出力結果.txt"
numff = FreeFile
Open fnsave For Output As #numff
For i = 1 To 10
temp = Cells(i, 1)
Print #numff, temp
Next i
Close #numff
End Sub
fnsave = "出力結果.txt"
numff = FreeFile
Open fnsave For Output As #numff
For i = 1 To 10
temp = Cells(i, 1)
Print #numff, temp
Next i
Close #numff
End Sub
一気に処理する方法
次のコードは出力する内容を変数にため込み、一気に書き込む方法である。
セルの順番を入れ替えたり、セル同士を結合したり、上の例より柔軟に処理ができるかもしれない。
ただし、上と違って、自動的に改行が入らないことに注意する。もし改行を入れるならば「temp = temp & Cells(i, 1)」のところを「temp = temp & Cells(i, 1) & Chr(13)」と書くとよい。
Sub テキストとして出力2()
fnsave = "出力結果.txt"
numff = FreeFile
Open fnsave For Output As #numff
temp = ""
For i = 1 To 10
temp = temp & Cells(i, 1)
Next i
Print #numff, temp
Close #numff
End Sub
fnsave = "出力結果.txt"
numff = FreeFile
Open fnsave For Output As #numff
temp = ""
For i = 1 To 10
temp = temp & Cells(i, 1)
Next i
Print #numff, temp
Close #numff
End Sub
保存場所を選択する方法
ファイル名を変えたり、保存場所を変えたりしたい場合には、1行目の代わりに次のように書くとよい。
fnsave = Application.GetSaveAsFilename("出力結果.txt", "テキスト(*.txt),*.txt")
If fnsave = False Then Exit Sub
If fnsave = False Then Exit Sub
まとめ
2021年3月4日追記
最もシンプルな方法は次のとおりです。
Sub テキストファイルを保存()
'カレントディレクトリをこのファイルのあるディレクトリに変更
ChDir Application.ThisWorkbook.Path
'ファイル名
my_filename = "sample.txt"
'ファイルの内容
my_text = "この文字列を保存します。"
num_freefile = FreeFile
Open my_filename For Output As #num_freefile
Print #num_freefile, my_text
Close #num_freefile
End Sub
'カレントディレクトリをこのファイルのあるディレクトリに変更
ChDir Application.ThisWorkbook.Path
'ファイル名
my_filename = "sample.txt"
'ファイルの内容
my_text = "この文字列を保存します。"
num_freefile = FreeFile
Open my_filename For Output As #num_freefile
Print #num_freefile, my_text
Close #num_freefile
End Sub
[ 2010年2月12日 | カテゴリー: Excel | タグ: tips , VBA ]
« ブックマークレットで目的のウェブサイトを開く方法 | alertとpromptのどちらを使うか »
コメントを残す