ここでは、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
今日は朝からのどが痛し。辛し。エアコンをつけっぱなしにして寝たせいと思われるし。