フナ、クジラ、ヒトデ、ホッケ 仲間外れは? [HEX]
Excel は内部で Unicode を使うように構成されているらしい。ところが、Excel が吐く CSV のファイルは Shift-JIS なので、ここで文字コードの変換が行われる。Unicode と Shift-JIS で扱える文字集合が同じなら問題はないだろうけど、残念ながらそんなことはない。Unicode にあって Shift-JIS に無い文字はどう頑張っても表すことができない。
JIS 第三水準、第四水準に含まれるの多く(全てではないようです)は Shift-JIS に含まれないし、JIS に含まれないハングル文字のようなものも Shift-JIS では表せない。
Excel のセルに上記のような文字が含まれている場合でも、標準のワークブックの形式(.xlsx や .xls)で保存すれば問題なく使えるはず。問題になるのは CSV 形式で保存しようとした場合に限るということ。
今回は、Excel のワークブックにアクセスして CSV ファイルを自前で作ってしまうことを考える。その場合いくつかの方法があるのだけれど、
- Excel のマクロを使用する
- ADO を使用して、Excel のテーブルデータを読み出す
- オートメーションを使用して外部のプログラムから Excel のセルの情報を読み出す
どれも一長一短があり、常にどれかが優位になるというものではないのだけれど、今回はオートメーションを使ってみることにしよう。マクロを使用するには Excel を起動しないとならないし、ADO では綺麗に整列されたテーブルでないと使えないという点を考慮した結果の選択です。ただ、オートメーションは遅いという難点があるのですが...。
さて、タイトルのなぞなぞの答えですが、全ての選択肢で仲間外れになる要素を 1 つ以上持っているはず。ただ、今回のネタに合わせたものでは、ホッケだけが SHIFT-JIS 外の漢字という事です。
コメント 0