新しいExcelではutf-8なCSVのエクスポートができるぞい

やあ子供たち。元気でやっているか。最近おじさんは熱帯魚飼育を始めてみたよ。水が白く濁ってなかなか治らなくてな。まあ何でも勉強で、大変なんだけれども。
さて今日はExcelutf-8CSVをエクスポートしたいという内容だよ。(※本記事は、最近までおじさんが知らなかっただけの話だろという側面もありますので見下ろす感じで読んでくれても大丈夫です。)

●旧来からの「CSVとして出力」だとShitftJISになってしまう。
いわゆる環境依存文字、例えば日本語圏以外のマルチバイト文字を含むExcelシートをCSVとしてエクスポートしたい場面は昨今よくあるわけだが、過去これまでのExcelで俺たち日本人なら誰もがやってきた「名前をつけて保存」でCSVとして出力をするやり方だと、文字コードはShiftJIS固定で出力されてしまうので、Excelの中の世界ではちゃんと表示されていたそうした外国系の文字は、CSVに出力した途端に?などがついて、なんとも悲しい文字化けCSVとしての出力しかできなかった。

「日本語をShiftJISのCSVで出力してメモ帳でutf-8にすればええやん」そうじゃない。そういう話をしているのではありません。普通の標準の日本の漢字しか含まれていないExcelシートだったら、もちろんそれでOKで、誰も困らないよ。メモ帳でutf-8化しちゃってくださいそれで話は終わりだよ。
そういうケースではなくて今は、日本語以外の、外国の見たことないような環境文字(或いは日本語でも標準の漢字ではない難しい漢字などが含まれているExcelファイル)の話をしているよ。そういうExcelファイルをCSVに出力する場合の話をしているよ。本来Excelの中でちゃんと表示されていたこれら普段は見ないような環境文字がですね、旧来のExcelCSVエクスポートすると、ShiftJISになって「潰れて」しまうからこまるよねと、そういう話をしているんだよ坊やわかるかい。

これがために以下のような解決策を右往左往する必要があった。

  1. UniCodeテキストとして出力 UniCode?。「名前をつけて保存」でUniCode、つまりUTF16テキストとして出力する方法。これはカンマじゃなくてタブ区切りのUTF16テキストとして出力してくれるので、メモ帳などでタブをカンマに置換してutf-8として保存しなおす方法。文字はちゃんと変換されてくれて有難いのだけれども。。けれども罠があって連続する空のカラムがあると区切ってくれるはずのタブを全部まとめて1個のタブとして出力してくれるから列情報がめちゃめちゃになるので、事実上、空のカラムが1個もないとわかってるシートでしか使えなさそう。
  1. Excelのブック内容を読みに行って文字コードutf-8でテキスト出力するためのVBAやC#を、力ずくで書く。(これが最終手段か?)

●新しいExcelでは、「CSVとして出力(ただしutf-8でな)」が選べる!
はいここからが本題だ。ところがところが上述の心配や努力は一切必要なくなる新機能の登場だ。新しいExcelでは、「名前をつけて保存」の中に、もう普通に「CSVとして出力(ただしutf-8でな)」が、何も考えずに誰でも簡単に!これをやればいいだけなんですみなさん!今日は特別価格で、1万円を切りました!さらにさらに、今ならお得な1年分パックもつけちゃいます!(←最後のはExcelの価格とかじゃないからな。ふざけてるだけだよ。)

はい。みんなも最新のExcelを買って時間や人手をセーブすることを検討してみてはいかがだろうか。
※ていうか、Excelもそんなに最新じゃなくてって話もある。Excel2016あたりから使おうと思えば使えるオプションだったという噂も。最近までおじさんが知らなかっただけの話っていうのは本当にそうなので。
今日のネタは以上でおしまいだよ。チャオ!