Excel VBA でテキストを保存する

やりたい事

  • Excel の VBA でテキストを保存する。

下準備

エクセルを起動 → [alt] + [F11] → [ツール] → [参照設定] → 下記にチェックを入れる → [OK]

[Microsoft ActiveX Data Objects 6.1 Library]
にチェックを入れる

[ファイル] → [名前を付けて保存] → [Excel マクロ有効ブック (*.xlsm)] を選択 → 任意のファイル名を入力 → [保存]

VBA スクリプト

data.txtに保存するサンプル。

Sub test()

Dim wks As String
Dim filename As String

wks = "Test"
filename = "data.txt"

Call SaveAsText(filename, wks)
 
End Sub


Sub SaveAsText(filename As String, d As String)

'Microsoft ActiveX Data Objects 6.1 Library

Dim output As ADODB.Stream
Set output = New ADODB.Stream

With output
    .Type = adTypeText
    .Charset = "UTF-8"
    .LineSeparator = adLF
    .Open
End With
  
  output.WriteText d, adWriteLine
  output.SaveToFile filename, adSaveCreateOverWrite
  output.Close

End Sub

実行方法

[開発] → [マクロ] → [test] → [実行(R)]

メモ

  • xlsm 形式で保存をしないと、次に読み込んだ時にマクロが消える。
  • ファイルはドキュメント直下に作成される。変更したい場合はファイル名をフルパスで指定する事。