はじめに
ExcelのデータをUTF-8でエンコードして出力したかったのですが、ファイル操作関連のステートメントや FileSystemObjectで対応しているエンコードは限られておりUTF-8では出力できません。
ActiveX Data Objectsを利用することで、UTF-8などさまざまなエンコードに対応ができそうなので、関数を作成しました。
準備
Visual Basic Editor のメニューから、[ツール]→[参照設定]で、リストから参照設定する。
・Microsoft ActiveX Data Objects x.x Library (最新バージョンのみでOK)
実装
Public Sub SaveFile(ByVal filename As String, ByVal text As String, _
Optional ByVal enc As String = "UTF-8")
'ファイル出力
Dim output: Set output = New ADODB.Stream
output.Type = adTypeText
output.Charset = enc
output.Open
output.WriteText text
output.SaveToFile filename, adSaveCreateOverWrite
output.Close
End Sub