Tech Racho エンジニアの「?」を「!」に。
  • IT Tips

ExcelでCSV保存したときに半角スペースがはてな(?)に文字化けする

更新情報

  • 2010/07/22: 初版公開
  • 2021/08/19: 更新

ExcelからCSV形式で保存するには、「名前を付けて保存」ダイアログでCSV(カンマ区切り)を選択すればOKです。

#エクスポートしたいところですが、保存しかできないようですね。連続でやるときにはすごく不便。

ところが、これをやると、文字化けが発生してしまうことがあります。

現象

半角スペースが含まれるExcelファイルで、Excel上で見るぶんには問題ないのですが、これをCSVエクスポートすると、1行目だけ文字化けします。

Excelでは上の行も下の行も見た目は同じ

CSVにエクスポートしてExcelで開くと、上の行だけ文字化けする

原因

これは、同じ半角スペースに見えても「CODE=32(0x20)」の「半角スペース」と、「CODE=160(0xA0)」の「NBSP」があるのが原因になっています。

0xA0のNBSPはShift-JISでは表現できないので、保存時に「?」に文字化けしてしまいます。

解決方法

これを解消するには、160のNBSPを32の半角スペースに一括置換すれば良いです。

1. 適当なセルに「=CHAR(160)」という数式を入力して、その結果をコピーします。

charcode=160の文字を作成

charcode=160の文字を作成

2. その後、Ctrl+Fの「置換」タブで、「検索する文字列」にコピーした内容をペースト、「置換後の文字列」に普通の半角スペースを入力して、「すべて置換」すればOKです。

これで、見た目は変わらないけど文字化けしないExcelファイルができました。

というか、普通に使っていればこんな問題は起きないんですが、なぜか送られてきたExcelがこんなことになっていて・・・
先方はどんな使い方をしていたんでしょうね?


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。