ソフトウェア 公開日 2026.04.25 更新日 2026.04.26

CSVをExcelで開くと文字化けするのはなぜか

CSVをExcelで開くと文字化けする理由を、UTF-8、BOM、Excelの開き方、Shift_JISとのズレから整理し、防止方法と実務での作り分け方まで解説します。

先に要点

  • CSVをExcelで開くと文字化けする主な理由は、CSVの文字コードとExcelの解釈がズレるから です。
  • 特に、日本語の UTF-8 CSV を「そのままダブルクリックで開く」 と、環境によっては期待通りに読まれず、文字化けに見えることがあります。
  • Microsoft 公式でも、UTF-8 の CSV は BOM 付きなら通常どおり開ける、そうでなければ データ取り込みで開く 方法が案内されています。
  • 実務では、UTF-8+BOM にする か、Excel での取り込み手順まで運用に含める のが安定です。

CSV はただのテキストファイルなのに、なんで Excel で開くと日本語だけ文字化けするの? というのは本当によくある悩みです。
しかも厄介なのは、CSV 自体が壊れているとは限らないことです。ファイルは正しいけれど、Excel の開き方や解釈が違うだけ ということがかなりあります。

この記事では、CSV を Excel で開くと文字化けする理由を、文字コードのズレ、UTF-8、BOM、Excel の開き方という順で整理します。
何を選べば防げるか が分かるように、実務向けにまとめます。

結論:CSV自体より「Excelがどう読むか」が問題になりやすい

先に結論を書くと、CSV を Excel で開いたときの文字化けは、CSV の中身が壊れている のではなく、Excel が想定と違う文字コードで読んでいる ことが多いです。

つまり、

  • CSV を作る側の文字コード
  • Excel が開くときの解釈

が一致していないと、日本語だけ崩れやすくなります。

そもそもCSVは「文字コード付きの表形式テキスト」ではない

ここが最初のポイントです。
CSV は、データをカンマ区切りなどで並べたテキスト形式ですが、ファイル形式として「必ず UTF-8 で読む」みたいな強い約束があるわけではありません

そのため、同じ CSV でも、

  • UTF-8 で保存されている
  • Shift_JIS で保存されている
  • UTF-16 で保存されている

のような違いがありえます。

そして Excel は、開き方や環境によって この CSV はこの文字コードだろう と推測しながら開くことがあります。
ここで推測が外れると、文字化けして見えます。

典型的な原因

1. UTF-8 の CSV を、Excel が別の文字コードとして開く

一番ありがちなのはこれです。

CSV を UTF-8 で出力していても、Excel が

  • 日本語 Windows での従来の文字コード寄り
  • 別の既定解釈

として開くと、日本語だけ崩れることがあります。

このとき、

  • 英数字はだいたい読める
  • 日本語だけ変になる
  • 記号や一部の特殊文字も崩れる

という見え方になりやすいです。

つまり CSV を UTF-8 にしたのに壊れた のではなく、UTF-8 のまま正しく読まれていない だけ、というケースです。

2. BOM がない UTF-8 CSV をそのまま開いた

Microsoft 公式では、UTF-8 でエンコードされた CSV は、BOM 付きで保存されている場合は通常どおり開ける と案内されています。
逆に言うと、BOM がない UTF-8 CSV は、そのまま開く と解釈がズレることがあります。

ここが重要です。
UTF-8 だから安全 ではなく、Excel が UTF-8 と認識しやすい形か まで見ないといけません。

3. Shift_JIS 前提の運用と UTF-8 前提の運用が混ざっている

日本語の業務システムでは、今でも CSV を Shift_JIS 前提で扱う場面があります。
そこへ UTF-8 CSV をそのまま流すと、Excel 側が従来の感覚で開いて文字化けすることがあります。

実務では、

  • システムAは UTF-8
  • システムBは Shift_JIS 前提
  • でもユーザーは全部 Excel で開く

というズレが起きやすいです。

4. ダブルクリックで開くのと、取り込みで開くのが違う

これも大事です。
CSV は ファイルを開く のと、Excel の データ取り込み から開くのとで挙動が違うことがあります。

Microsoft 公式でも、BOM がない UTF-8 CSV を扱うときは、

  • データ タブから テキスト/CSVから
  • あるいは テキストからデータを取得

の方法が案内されています。

つまり、開き方自体が回避策 です。

どういう見え方ならこの問題を疑うか

次のような症状なら、Excel の文字コード解釈ズレを疑いやすいです。

  • 英数字は正常だが、日本語だけ崩れる
  • 同じ CSV をテキストエディタで開くと正常
  • システム上のプレビューやブラウザでは正常
  • Excel に取り込み直すと正常になる

この場合、CSV ファイルそのものより、Excel の開き方 が原因である可能性が高いです。

防止方法

1. UTF-8 + BOM で出力する

Excel での実務互換を重視するなら、まず有力なのがこれです。
Microsoft 公式でも、UTF-8 CSV は BOM が付いていれば通常どおり開ける と案内されています。

なので、ユーザーがダブルクリックで開く 前提が強いなら、

  • UTF-8
  • 可能なら BOM 付き

という方針はかなり有効です。

ただし、BOM を嫌うツールや処理系もあるので、CSV の利用先が Excel 中心かどうか は見た方がよいです。

2. Excel では「開く」より「取り込む」を案内する

CSV を配る側ができることは、ファイルだけ出すことではありません。
どう開くべきか を伝えるのも実務です。

Microsoft 公式の案内どおり、

  • データ タブ
  • ファイルからデータを取得
  • テキスト/CSVから

の流れで開くと、文字コードを踏まえて読み込みやすくなります。

つまり、ユーザーに ダブルクリックしないでください ではなく、この手順で取り込んでください を案内する方が親切です。

3. 利用先が古い Excel 運用なら Shift_JIS も検討する

これは 常に UTF-8 が正義 という話ではありません。
利用者がほぼ日本語版 Excel だけで、システム連携も Shift_JIS 前提なら、実務上は Shift_JIS CSV の方がトラブルが少ないことがあります。

ただしその場合も、

  • Unicode の一部文字が扱いづらい
  • 文字種によって表せないものがある
  • 他システム連携で UTF-8 と混ざると面倒

といったデメリットがあります。

つまり、Excel だけ見るか 将来の再利用まで見るか で判断が変わります。

4. ダウンロード前にサンプル確認する

CSV 出力機能を作る側なら、

  • Excel で直接開く
  • Excel の取り込みで開く
  • メモ帳や VS Code で開く

を最低限確認した方が安全です。

ブラウザで出せたからOK だと、実際の利用者環境で文字化けが出やすいです。

実務でどう作り分けるべきか

パターン1: 受け手がほぼ Excel ユーザー

この場合は、

  • UTF-8 + BOM
  • あるいは利用環境によって Shift_JIS

を検討しつつ、Excel での開き方も案内する のが安定です。

パターン2: システム連携や再利用が多い

この場合は、まず UTF-8 でそろえる方が後々扱いやすいです。
ただし Excel ユーザー向けには、取り込み手順を別で用意した方がよいです。

パターン3: 社内向け配布で運用を固定できる

この場合は、

  • 形式は UTF-8
  • 開き方は Power Query で統一

のように、運用ルールで吸収しやすいです。

すでに文字化けして見えるときは?

まず大事なのは、すぐ保存し直さないこと です。
見た目が崩れているだけなら、元の CSV のバイト列は無事かもしれません。

やる順番は次です。

  1. 元の CSV をコピーして残す
  2. テキストエディタで開いて正常か確認する
  3. Excel の取り込み手順で開き直す
  4. 必要なら UTF-8+BOM 付きで再出力する

ここで崩れた状態のまま保存すると、単なる表示ズレではなく、本当に壊したデータになることがあります。

よくある勘違い

1. UTF-8 にすれば絶対大丈夫

UTF-8 自体はよい選択ですが、Excel がどう認識するかまで見ないと足りません。
特に そのまま開く 運用では BOM の有無や開き方が効きます。

2. Excel で文字化けした = CSV が壊れている

これはよくある誤解です。
テキストエディタでは正常に見えるなら、CSV 自体は無事なことが多いです。

3. 文字化けした状態で保存してもあとで戻せる

これは危ないです。
表示ズレの段階なら戻せても、崩れた結果で上書きした後は戻しにくくなります。

まとめ

CSV を Excel で開くと文字化けするのは、CSV の文字コードと、Excel の読み方が一致していない ことが多いからです。
特に UTF-8 の CSV は、BOM の有無や開き方によって、Excel での結果が変わります。

防止の基本は次の通りです。

  • Excel で直接開かれるなら UTF-8+BOM を検討する
  • 取り込み手順を案内する
  • 利用先が Excel 中心か、システム連携中心かで文字コード方針を決める
  • 文字化けして見えたら、まず元ファイルを残して開き方を変えて試す

要するに、CSV の問題というより、Excel と CSV の間で文字コードの約束が曖昧なまま使われること が本当の原因です。

この記事と一緒に読みたい

  1. 文字化けって何?防止方法、復元方法は?
  2. BOMとは?UTF-8ファイルの先頭に付く目印をどう考えるべきか
  3. CSVダウンロード機能を作るとき、見積もりで何を確認するべきか

参考リンク

あとで見返すならここで保存

読み終わったあとに残しておきたい記事は、お気に入りからまとめて辿れます。