※本ページにはプロモーション(広告)が含まれています
【2026年最新版】ExcelでCSVファイルを開くと文字化けする原因と対処法【完全ガイド】
ExcelでCSVファイルをダブルクリックして開いたら、日本語が「????」や「縺ゅ↑縺溘�ョ莠コ蜷阪�ッ」のような意味不明な文字列に化けてしまった——そんな経験はありませんか?
この問題は毎日何万人もの日本のExcelユーザーが直面している、非常によく起きるトラブルです。原因さえわかれば必ず解決できます。この記事では、文字化けが起きる根本的な原因から、確実に直せる5つの対処法まで、スクリーンショットを交えて丁寧に解説します。
- CSVが文字化けする根本的な原因(文字コードの仕組み)
- テキストインポートウィザードを使った確実な解決手順
- UTF-8 BOMでダブルクリックだけで開けるようにする方法
- Power Query(Power BI連携)を使った最新の解決法
- Macユーザー向けの対処法
- 文字化けを二度と起こさないための予防策
1. ExcelでCSVが文字化けする根本原因:文字コードの不一致
1-1. 「文字コード」とは何か?
コンピュータはすべての文字を「数字」として記憶しています。「A」なら65、「あ」なら……という具合に、文字と数字を対応させる変換ルール(規格)のことを「文字コード」と呼びます。
問題は、世界中に複数の変換ルールが存在していることです。日本語を扱う主要な文字コードだけでも、以下のものがあります。
| 文字コード名 | 別名・通称 | 主な用途・特徴 |
|---|---|---|
| Shift-JIS | SJIS、CP932、Windows-31J | 日本のWindowsが長年使用してきた規格。ExcelのデフォルトはShift-JIS |
| UTF-8 | Unicode(一種) | 世界標準。Webサービス・Mac・Linux・プログラミングツールが使用 |
| UTF-8 BOM付き | UTF-8 with BOM | UTF-8に識別マーク(BOM)を付けたもの。ExcelはBOM付きを自動認識できる |
| EUC-JP | EUC | 古いLinux・Unix系システムが使用。現在は減少傾向 |
| ISO-2022-JP | JIS | 電子メールで使われる規格。CSVではまれ |
1-2. なぜ文字化けが起きるのか?
文字化けの原因はシンプルです。「CSVを作った側の文字コード」と「Excelが読み込む文字コード」が一致していないから起きます。
たとえば、Google スプレッドシートやSalesforceなどのWebサービスがエクスポートしたCSVはUTF-8形式です。ところが、Excelはファイルをダブルクリックで開く際にShift-JISとして読み込もうとするため、UTF-8の日本語が正しく表示されずに化けてしまいます。
- Google スプレッドシートからエクスポートしたCSV(UTF-8)をExcelで開いた
- Salesforce・kintone・freee などのWebシステムから出力したCSV
- MacのExcelやNumbers、テキストエディタで作成したCSV
- プログラム(Python・Ruby・Node.js等)で生成したCSV
- 海外のサービスやデータベースから取得したCSV
- Linuxサーバーやクラウド環境で生成されたデータ
1-3. 文字化けの「見た目」で原因を推測する
文字化けの見た目によって、ある程度原因の文字コードを推測できます。
| 文字化けの見た目 | 元のCSVの文字コード(推測) | 対処方針 |
|---|---|---|
| 縺ゅ↑縺溘�ョ(縦棒・矢印のような記号) | UTF-8 | インポート時にUTF-8を指定する |
| ???? または □□□□(疑問符・四角) | Shift-JIS / EUC-JP | インポート時にShift-JISを試す |
| � や î のようなラテン文字混じり | UTF-8(2バイト目以降を誤認識) | UTF-8でインポートする |
| 数字・英字は正常だが漢字・ひらがなだけ化ける | EUC-JP または UTF-8 | 複数の文字コードを試す |
2. 【対処法1】テキストインポートウィザードを使う(最も確実な方法)
ダブルクリックで開くのではなく、Excelの「データ」タブからインポートすると文字コードを手動で指定できます。これが最も確実な解決方法です。
2-1. Excel 2016 / 2019 / Microsoft 365(Windows)の手順
- Excelを起動し、新規ブックを開く(CSVファイルをダブルクリックしない)
- 上部メニューの 「データ」タブ をクリック
- 「データの取得と変換」グループの 「テキストまたはCSVから」 をクリック
- 文字化けするCSVファイルを選択して 「インポート」 をクリック
- プレビュー画面が表示される。上部の 「ファイルオリジン」ドロップダウン をクリック
- 「65001: Unicode (UTF-8)」 を選択(UTF-8の場合)
- プレビューで日本語が正しく表示されていることを確認
- 「読み込み」 をクリックして完了
ファイルオリジンのドロップダウンで以下の番号を探してください:
- 65001 → UTF-8(Google スプレッドシート・WebサービスのCSV)
- 932 → Shift-JIS(日本の旧システム・古いExcelで作ったCSV)
- 20932 → EUC-JP(LinuxサーバーのCSV)
- 1200 → UTF-16 LE(一部のWindowsツール)
2-2. Excel 2010 / 2013 の場合(旧バージョン)
古いバージョンのExcelでは「テキストインポートウィザード」という別の画面が表示されます。
- Excelを起動し、「データ」タブ → 「外部データの取り込み」→「テキストファイル」 をクリック
- CSVファイルを選択して 「インポート」
- 「テキストファイルウィザード – 1/3」が表示される
- 「元のファイル」ドロップダウンから文字コードを選択:
- UTF-8の場合:「65001 : Unicode (UTF-8)」
- Shift-JISの場合:「932 : 日本語(シフト JIS)」
- プレビューで日本語が正しく表示されているか確認 → 「次へ」
- 区切り文字の設定(通常は「コンマ」にチェック)→ 「次へ」
- 各列のデータ形式を設定(通常はデフォルトでOK)→ 「完了」
- データを貼り付ける場所を選択 → 「OK」
3. 【対処法2】メモ帳・テキストエディタで文字コードを変換してから開く
Windowsに標準搭載のメモ帳(Notepad)を使って、CSVの文字コードを変換してからExcelで開く方法です。追加ツールが不要で手軽です。
3-1. メモ帳を使う手順(Windows 10 / 11)
- 文字化けするCSVファイルを右クリック →「プログラムから開く」→「メモ帳」を選択
- メモ帳で開いた状態で文字化けが起きている場合、「ファイル」→「名前を付けて保存」 をクリック
- 保存ダイアログの下部に 「エンコード」ドロップダウン がある(Windows 11は「文字セット」と表示)
- エンコードを 「ANSI」(Shift-JISのこと)に変更
- ファイル名はそのままで 「保存」 をクリック
- 変換後のCSVをExcelでダブルクリックして開く
3-2. 無料テキストエディタ「VSCode」や「サクラエディタ」を使う
より確実な変換には、文字コードを明示的に指定して保存できるテキストエディタが便利です。
| エディタ名 | 対応OS | 文字コード変換の手順 |
|---|---|---|
| Visual Studio Code | Windows / Mac | 右下の「UTF-8」クリック→「エンコード付きで保存」→「Shift JIS」を選択 |
| サクラエディタ | Windows | 「ファイル」→「名前を付けて保存」→文字コードを「SJIS」に変更 |
| 秀丸エディタ | Windows | 「ファイル」→「文字コードを指定して保存」→「Shift-JIS」を選択 |
| テキストエディット | Mac | 「フォーマット」→「プレーンテキストにする」→保存時にエンコード選択 |
4. 【対処法3】UTF-8 BOM付きCSVに変換して「ダブルクリックで開ける」ようにする
BOM(Byte Order Mark)は、ファイルの先頭に「これはUTF-8です」という3バイトの識別マーカーを付ける仕組みです。ExcelはBOM付きUTF-8を自動認識できるため、ダブルクリックでも文字化けなく開けます。
4-1. BOM付きUTF-8とは何か
通常のUTF-8(BOMなし)はファイルの先頭に文字コードの識別情報がありません。そのため、Excelは「日本語のWindowsならShift-JISだろう」と判断して読み込んでしまいます。
BOM付きUTF-8は先頭に 0xEF 0xBB 0xBF という3バイトのマーカーが付いており、Excelがこれを見てUTF-8と認識します。
4-2. Pythonを使ってBOM付きに変換する
Pythonが使える環境では以下のスクリプトで一発変換できます。
# UTF-8(BOMなし) → UTF-8(BOM付き)変換スクリプト
with open('input.csv', 'r', encoding='utf-8') as f:
content = f.read()
with open('output_bom.csv', 'w', encoding='utf-8-sig') as f:
f.write(content)
print("変換完了!output_bom.csv を確認してください")
with open('input_sjis.csv', 'r', encoding='shift_jis') as f:
content = f.read()
with open('output_utf8bom.csv', 'w', encoding='utf-8-sig') as f:
f.write(content)
4-3. メモ帳でBOM付きUTF-8に変換する(Windows 10 / 11)
- CSVをメモ帳で開く
- 「ファイル」→「名前を付けて保存」
- エンコードを 「UTF-8(BOMあり)」 に変更
- 保存してExcelで開く
5. 【対処法4】Power Queryで文字コードを指定してインポートする
Excel 2016以降(Microsoft 365含む)に搭載されている「Power Query」(データの取得と変換)を使う方法は、大量のCSVを繰り返し処理したい場合に特に便利です。一度設定すれば、次回以降は「更新」ボタンを押すだけで最新データを文字化けなく取得できます。
5-1. Power QueryでCSVをインポートする手順
- Excelの 「データ」タブ → 「データの取得」→「ファイルから」→「テキスト/CSVから」
- CSVファイルを選択して「インポート」をクリック
- プレビューウィンドウが表示される
- 左上の 「ファイルオリジン」 ドロップダウンで 「65001: Unicode (UTF-8)」 を選択
- プレビューで日本語が正しく表示されるか確認
- 「データの変換」 ボタンをクリック(Power Queryエディターが起動)
- Power Queryエディターで追加の処理が不要なら 「閉じて読み込む」 をクリック
- Excelシートにデータが正しく取り込まれることを確認
5-2. Power Queryの「詳細エディター」でコードを直接書く
より細かい制御が必要な場合は、Power Queryの詳細エディターでMコードを直接記述できます。
let
// ファイルパスを指定(必要に応じて変更)
ファイルパス = "C:\Users\username\Downloads\data.csv",
// UTF-8で読み込み(65001)
ソース = Csv.Document(
File.Contents(ファイルパス),
[Delimiter=",", Columns=null, Encoding=65001, QuoteStyle=QuoteStyle.None]
),
// 1行目をヘッダーに設定
ヘッダー昇格 = Table.PromoteHeaders(ソース, [PromoteAllScalars=true])
in
ヘッダー昇格
| 文字コード | Encodingの値 |
|---|---|
| UTF-8 | 65001 |
| Shift-JIS | 932 |
| EUC-JP | 20932 |
| UTF-16 LE | 1200 |
6. 【対処法5】MacのExcelで文字化けする場合の対処法
MacのExcelでも同様の問題が起きますが、操作手順が若干異なります。
6-1. Macでのインポート手順
- Excelを起動し、「ファイル」→「インポート」 をクリック
- 「CSVファイル」を選択 →「インポート」をクリック
- CSVファイルを選択して「データの取得」
- テキストインポートウィザードが起動する
- 「ファイルの元の形式」ドロップダウンで 「Unicode (UTF-8)」 を選択
- プレビューを確認 → 「次へ」→「完了」
6-2. Macのターミナルで文字コードを確認する
CSVの文字コードが不明な場合、Macのターミナルで確認できます。
# ファイルの文字コードを確認
file -I /path/to/your/file.csv
# 出力例(UTF-8の場合)
# /path/to/your/file.csv: text/plain; charset=utf-8
# 出力例(Shift-JISの場合)
# /path/to/your/file.csv: text/plain; charset=iso-2022-jp
7. 文字コードを確認・変換できるツール紹介
頻繁にCSVの文字化けに悩む方には、専用ツールの導入がおすすめです。
| ツール名 | 対応OS | 特徴 | 価格 |
|---|---|---|---|
| サクラエディタ | Windows | 文字コード確認・変換が簡単。日本語に強い | 無料 |
| Visual Studio Code | Win / Mac | 右下で文字コード確認・変換が可能。多機能 | 無料 |
| EmEditor | Windows | 大容量CSVの閲覧・変換に強い。業務向け | 有料(無料版あり) |
| iconv(コマンドライン) | Mac / Linux | ターミナルから一括変換。スクリプト化可能 | 無料 |
Macのiconvコマンドで変換する(ターミナル)
# UTF-8 → Shift-JIS(Excelで開けるように)
iconv -f UTF-8 -t SHIFT_JIS input.csv > output_sjis.csv
# Shift-JIS → UTF-8
iconv -f SHIFT_JIS -t UTF-8 input.csv > output_utf8.csv
# EUC-JP → UTF-8
iconv -f EUC-JP -t UTF-8 input.csv > output_utf8.csv
8. 文字化けを根本的に防ぐための予防策
8-1. CSVを出力するシステム側で設定する
Webシステムやプログラムからエクスポートする場合、出力する文字コードをShift-JISまたはUTF-8 BOM付きに設定するのが根本解決です。
| システム | 対応方法 |
|---|---|
| Google スプレッドシート | 「ファイル」→「ダウンロード」→「カンマ区切り値(.csv)」でUTF-8出力されるため、インポート時にUTF-8を指定 |
| Salesforce | エクスポート設定で文字コードを「Shift_JIS」に変更可能な場合がある(管理者設定を確認) |
| Python(pandas) | df.to_csv('output.csv', encoding='utf-8-sig') でBOM付きUTF-8出力 |
| Ruby | CSV.open("output.csv", "w", encoding: "BOM|UTF-8") でBOM付き出力 |
| Node.js | ファイル書き込み時に '\uFEFF'(BOM文字)をファイルの先頭に追加する |
8-2. Excelの「データ」タブを使う習慣をつける
最も効果的な予防策は、CSVをダブルクリックで開かない習慣をつけることです。常に「データ」タブから「テキスト/CSVから」でインポートすれば、文字化けは確実に防げます。
- Excelを先に起動する
- 「データ」タブ → 「テキスト/CSVから」を選択
- 文字コードを確認してからインポート
この方法を習慣にするだけで、CSVの文字化けは99%防止できます。
9. よくある質問(FAQ)
Q1. インポートしたら日本語は正しいのに日付の列がおかしくなった。なぜ?
A. これは文字化けとは別の問題です。Excelは「2026/1/5」「01-05-2026」「5-Jan」など様々な形式の日付を自動変換する機能があり、意図しない形式に変換されることがあります。
解決方法:テキストインポートウィザードの「3/3ステップ」で、日付の列を選択し「列のデータ形式」を「テキスト」に設定してください。これで日付がそのままの文字列として取り込まれます。後からセルの書式設定で日付形式に変換できます。
Q2. 「65001」を選んでも文字化けが直らない。ほかに何を試せばいいか?
A. 以下の順番で試してください。
- 932(Shift-JIS)を試す
- 20932(EUC-JP)を試す
- 51932(EUC-JP 日本語)を試す
- それでもダメなら、ファイルをテキストエディタで開いて文字コードを確認する(VSCodeなら右下に表示される)
Q3. MacのExcelでもダブルクリックで文字化けせずに開く方法はあるか?
A. Macの場合、CSVファイルのデフォルト開くアプリを変更することで改善できる場合があります。ただし根本的な解決策は「インポート」を使うことです。また、CSVをShift-JISに変換してから開く方法もありますが、Macとの相性問題が生じる場合があります。最も確実なのは、CSVをUTF-8 BOM付きに変換してから開くことです。
Q4. Google スプレッドシートからダウンロードしたCSVを毎回文字化けなく開くには?
A. 以下の方法が効果的です。
- 方法1:Google スプレッドシートで「ファイル」→「Excel形式でダウンロード(.xlsx)」を選択する。xlsx形式なら文字コードの問題が発生しない
- 方法2:CSVをダウンロード後、Power Queryで「UTF-8」を指定してインポートする。一度設定すれば次回は「更新」ボタンで取得できる
- 方法3:GASやPythonでUTF-8 BOM付きCSVを生成するスクリプトを用意する
Q5. 文字化けしたデータをコピー&ペーストしてしまった。元に戻せるか?
A. 一度文字化けしたデータをコピー&ペーストしてしまうと、元のデータが失われているためExcel上での復元は困難です。必ず元のCSVファイル自体からインポートし直す必要があります。元のCSVファイルが残っていれば、正しい手順でインポートすれば必ず正しいデータを取得できます。
Q6. ExcelでCSVを保存すると文字化けが起きることはあるか?
A. あります。ExcelでCSVを「名前を付けて保存」するとShift-JIS形式で保存されます。このCSVをUTF-8を期待するシステム(Webアプリ・サーバー等)にアップロードすると、受け取り側で文字化けが発生します。
解決方法:ExcelのCSV保存後、VSCodeやサクラエディタで開き直し、UTF-8(またはUTF-8 BOM付き)で保存し直すか、Pythonスクリプトで変換してください。
Q7. 数万行の大きなCSVで文字化けが起きている。効率よく処理する方法は?
A. 大容量CSVの場合、以下の方法が効率的です。
- Power Query:一度設定すれば「更新」ボタンで再取得できる。Excelが扱える範囲内(約100万行)なら最適
- Pythonのpandasライブラリ:
pd.read_csv('file.csv', encoding='utf-8')で読み込み、to_csv('output.csv', encoding='utf-8-sig')で保存。どんなサイズでも対応可能 - EmEditor:数GBの大容量ファイルも軽快に開ける有料テキストエディタ
10. 状況別・対処法の選び方まとめ
| 状況 | おすすめの対処法 | 難易度 |
|---|---|---|
| 今すぐ1回だけ開きたい | 対処法1:テキストインポートウィザード | ★☆☆(簡単) |
| ダブルクリックで開けるようにしたい | 対処法3:BOM付きUTF-8に変換 | ★★☆(普通) |
| 同じCSVを毎週更新して使う | 対処法4:Power Queryで接続設定 | ★★★(やや難) |
| ツールを追加インストールしたくない | 対処法2:メモ帳で変換 | ★☆☆(簡単) |
| 大量のCSVをまとめて処理したい | 対処法4 または Python(pandas) | ★★★(やや難) |
| MacでExcelを使っている | 対処法5:Macのインポート手順 or iconv | ★★☆(普通) |
まとめ
ExcelでCSVを開いた際の文字化けは、CSVの文字コード(UTF-8)とExcelのデフォルト読み込み設定(Shift-JIS)のミスマッチが原因です。パソコンの故障でも設定の不具合でもありません。正しい手順で対処すれば必ず解決できます。
- CSVはダブルクリックで開かない → 「データ」タブ → 「テキスト/CSVから」を使う
- 文字コードは65001(UTF-8)から試す → Webサービス系のCSVはほぼこれで解決
- 毎回同じCSVを使うならPower Queryを設定する → 次回以降は「更新」ボタン一発
- プログラムでCSVを生成する場合はUTF-8 BOM付きで出力する → Excelが自動認識する
文字化けの問題は一度解決方法を覚えてしまえば、二度と困ることはありません。この記事を参考に、ぜひ快適なExcel作業環境を整えてください。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!