VBAでEUC-JPなテキストファイルを生成する
会社でExcel VBAをよく使ってプログラムを作るんですが、その中でEUC-JPなテキストファイルを生成する必要がありまして。
で、色々調べてたところ、意外と簡単にできることが判明しました。
ということで、そのサンプルコードを置いておきます。
Sub output_textfile() ' ADODB.Streamオブジェクトの生成 Dim outObj As Object Set outObj = CreateObject("ADODB.Stream") ' オブジェクトのデータの種類を指定 ' 1: バイナリデータ, 2:テキストデータ outObj.Type = 2 ' テキストデータの文字エンコーディングをeuc-jpに指定 ' 指定できる文字エンコーディングの種類は、 ' レジストリの以下パスにあるサブキーを確認 ' HKEY_CLASSES_ROOT\MIME\Database\Charset outObj.Charset = "euc-jp" ' 改行コードの指定 ' -1: CRLF, 10: LF, 13: CR outObj.LineSeparator = 10 ' ストリームオブジェクトを開く outObj.Open ' ストリームオブジェクトに第1引数で指定したテキストを書き込み。 ' 第2引数はオプション、0を指定すると第1引数のみ書き込み。 ' 1を指定するとLineSeparatorで指定した文字列を区切り文字として挿入 outObj.WriteText "これはテストです。", 1 outObj.WriteText "よろしく。", 1 ' ストリームオブジェクトのデータをファイルに。 outObj.SaveToFile ("sample2.txt"), 2 ' ストリームオブジェクトを閉じる outObj.Close ' メモリからストリームオブジェクトを削除 Set outObj = Nothing End Sub
今回は書き出し処理を書いてますが、読み込みもADODB.Streamを使えば簡単にできるようです。
詳細はMSのサイトを見ていただければ。
[MSDN: ADOオブジェクト: Streamオブジェクト]
http://msdn.microsoft.com/ja-jp/library/cc364272.aspx