住所録などでは人名や地名にシフトJISでは表現できない漢字などが使われていることがある。これらのデータをCSV形式でやりとりするには、文字コードに「UTF-8」を使うとよい。その方法を紹介しよう。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
対象:Excel 2013/2016/2019/2021/365
「Microsoft Excel(エクセル)」で作成した表を、CSV形式で保存し、別のアプリケーションに読み込ませることはないだろうか。また、取引先にデータを送る際に、XLSX形式ではなく、CSV形式が要求されることもあるだろう。逆にCSV形式で受け取ったデータをExcelで読み込んで処理したいというケースもあり得る。
このような場合、環境依存文字(機種依存文字)が含まれていると、CSV形式に変換する際に、正しく文字が出力されないことがある。こうした事態を防ぐには、環境依存文字を見つけ、代わりの文字に置き換える必要がある。環境依存文字を見つける方法は、Tech TIPS「構造化Excelテク:表内にある環境依存文字をチェックして文字化けやデータの欠落を防ぐ」を参照してほしい。
しかし、Webサイトから収集したデータや、住所録など人名や地名では、文字コードが「シフトJIS(Shift-JIS)」であると表現できない文字が使われており、代わりの文字に置き換えられないこともある。そうした場合の対処方法を紹介しよう。
環境依存文字が含まれており、その文字を置き換えられない表の場合、CSV形式に保存する際に文字コードを「UTF-8」にするという手がある。もちろん読み込ませるアプリケーションや取引先が、UTF-8のCSV形式を扱えるのが前提になる。UTF-8のCSV形式に対応していない場合は、前述のTech TIPS「構造化Excelテク:表内にある環境依存文字をチェックして文字化けやデータの欠落を防ぐ」を参考に環境依存文字を探して、平仮名や片仮名、別の漢字などに置き換える必要がある。
Excel 2016以降の場合、CSVで保存したいシートを選んでから、[ファイル]−[名前を付けて保存]または[コピーを保存]を選択し、[参照]をクリック、[名前を付けて保存]ダイアログを開き、「ファイルの種類」のプルダウンリストで[CSV UTF-8(コンマ区切り)]を選択すればよい(Excel 2016では、更新プログラムを適用しないと[CSV UTF-8]は表示されないので注意)。開いていたシートが、UTF-8のCSV形式で保存される。「メモ帳」アプリなどのUTF-8に対応したテキストエディタで開くことで、データの確認が可能だ。
なお、表中の住所や名前に異体字が含まれている場合、テキストエディタによっては異体字がJIS2004の字形に変わり、次の文字との間に「??」や「□」が挿入されてしてしまうので注意してほしい(異体字については、Tech TIPS「Windows 10の日本語入力システム(MS-IME)で異体字を入力可能にする」参照のこと)。「メモ帳」アプリでは異体字も正しく表示されるので、データを確認する際は「メモ帳」アプリを使うとよいだろう。
Excel 2013の場合、[名前を付けて保存]ダイアログの「ファイルの種類」プルダウンリストに[CSV UTF-8(コンマ区切り)]が存在しない。そこで、「ファイルの種類」のプルダウンリストで[Unicodeテキスト]を選択し、Unicodeのテキスト形式で保存する。
タブ区切りのテキスト形式で保存されるので、タブを「,(カンマ)」に変換すればよい。それには、以下の手順で置換を実行する。
ただし、文字列の途中にタブが含まれている場合は、そのタブも「,(カンマ)」に変換されてしまうので注意が必要だ。タブが含まれている可能性がある場合は、ExcelでUnicodeテキストで保存する前に、シート内で使っていない文字(例えば、「〜」など)へタブを置換しておき、「メモ帳」アプリでタブを「,(カンマ)」に置換した後に、「〜」からタブに置換するなどの工夫が必要になる。
タブが「,(カンマ)」に置換できたら、[ファイル]−[名前を付けて保存]を選択し、[名前を付けて保存]ダイアログで、「文字コード」のプルダウンリストで[UTF-8(BOM付き)]を選択し、拡張子を「.csv」にして保存すればよい。
取引先などから受け取ったCSV形式のファイルをExcelで読み込んだら、文字化けしてしまった、という経験はないだろうか。これは、Excelが文字コードを正しく認識できなかったのが原因だ。
取引先にファイルの再送をお願いする前に、次の手順を試してみよう。
「メモ帳」アプリでCSV形式のファイルを開く。ここで文字化けしているようならば、データが壊れている可能性があるので、理由を説明して再送をお願いしよう。
正しく文字が認識できる場合は、[ファイル]−[名前を付けて保存]を選択し、[名前を付けて保存]ダイアログで、「文字コード」のプルダウンリストで[UTF-8(BOM付き)]を選択して上書き保存する。「BOM」とは「Byte Order Mark」の略で、文字コードが「UTF-8」であることを示すヘッダのことだ。これがあることで、明示的にファイルの文字コードがUTF-8であると認識され、ExcelでもUTF-8として読み込みが行われる。
上書きしたCSVファイルをExcelに読み込ませると、今度は文字化けせずに表示されるはずだ。
Copyright© Digital Advantage Corp. All Rights Reserved.