Office 2016の10月の機能更新によって、ExcelでUTF-8文字エンコードのCSVファイルがサポートされるようになりました(バージョン 1610(ビルド 7466.2038)以上)。
「名前を付けて保存」から「ファイルの種類」を「CSV UTF-8 (カンマ区切り) (*.csv)」にすれば、UTF-8形式のCSVファイルとして保存できます。
XlFileFormatのメンバーも追加
上記変更に伴って、マクロでファイル保存時にファイルの種類を指定するために使うXlFileFormatにも、新たに「xlCSVUTF8」(Const xlCSVUTF8 = 62 (&H3E))という値が追加されました。
この値を指定することで、これまでUTF-8非対応のため文字化けしていた文字列が、ちゃんと出力されるようになります。
Public Sub Sample() ActiveWorkbook.SaveAs Filename:="C:\Test\Test01.csv", _ FileFormat:=xlCSV End Sub
Public Sub Sample2() ActiveWorkbook.SaveAs Filename:="C:\Test\Test02.csv", _ FileFormat:=xlCSVUTF8 End Sub
自分としては正直、「最初からUTF-8サポートしておいてくれ…」と思わなくもないのですが、アラビア語や中国語といった、日本語以外の言語を扱うことが多い人であれば嬉しい機能追加だと思います。
ただ、名前を付けて保存では、区切り文字や、改行文字、囲み文字といった細かい指定はできませんので、より詳細な条件でCSVファイルを出力したい場合には、下記記事のようにマクロを使うことをお薦めします。
この記事へのコメントはありません。