ここでは、VBA で CSV 形式のデータファイルを作成するサンプルスクリプトを掲載しています。なお、出力するテキストの文字コードは UTF-8 です。Excel などは文字コードが Shift-JIS で管理されていますので、シート上のデータを出力する際などに利用できます。
スポンサーリンク
UTF-8 で CSV ファイルを出力する
CSV ファイルを出力するサンプルスクリプトになります。詳細はサンプル内のコメントを参照ください。
Dim stream
Dim i As Integer
Dim csvStr As String
Const adTypeText = 2 ' ストリームタイプ(テキスト)
Const adSaveCreateOverWrite = 2 ' ファイル書き込みモード(既存ファイル上書き)
' ADODBストリームをテキスト(文字コード:UFT-8)でオープン
Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type = adTypeText
stream.Charset = "UTF-8"
' 10行分CSVデータを書き込み
For i = 1 To 10
' 改行コードは自前で挿入する必要あり
csvStr = i & "行目," & "string" & i & vbCrLf
'1行書き込み(改行コードも書き込み)
' ★ 勝手に改行コードが付与されると思っていたが、どうやら違うらしい
stream.WriteText csvStr, adWriteLine
Next
'CSVデータをファイルに保存する(既存ファイルは上書き)
stream.SaveToFile ("e:\test.csv"), adSaveCreateOverWrite
'ストリームを閉じる
stream.Close
Set stream = Nothing
作成される CSV ファイル
上記のサンプルスクリプトを実行して生成される CSV ファイルは次の通りです。
1行目,string1
2行目,string2
3行目,string3
4行目,string4
5行目,string5
6行目,string6
7行目,string7
8行目,string8
9行目,string9
10行目,string10
今日は朝からのどが痛し。辛し。エアコンをつけっぱなしにして寝たせいと思われるし。