Excelで日本語CSVが文字化けする原因と正しい開き方【UTF-8対応】

みなさん、こんにちは。

日本語を含むCSVファイルをExcelで開いたときに文字化けしてしまい、困った経験はありませんか?

特にMacユーザーの方なら、Numbersで作成したCSVがExcelでなぜか文字化けしてしまう、という状況に直面したことがあるかもしれませんね。

今回は、なぜExcelでCSVファイルが文字化けしてしまうのか、その原因と対処方法を解説していきます。さらに、CSVファイルをUTF-8で正しく保存する方法や、開発者向けにPythonでのCSV出力例も紹介します。

 


 

なぜExcelでCSVが文字化けするの?

 

原因はシンプルです。Excelが文字コードを誤って認識するためです。
CSVファイルは非常にシンプルなテキストファイルで、文字コード(エンコーディング)情報を内部に持ちません。
ExcelはCSVファイルを開くとき、自動的に「Shift_JIS(CP932)」と判断して読み込もうとします。

一方、最近のアプリケーションやシステムでは、UTF-8が主流です。表計算ソフトでいえば、NumbersやLibreOffice Calcでは、CSVファイルはUTF-8で保存されます。

このギャップにより、UTF-8で保存されたCSVファイルをExcelが誤ってShift_JISで読み込み、日本語が文字化けするという問題が発生します。

 


 

対処方法

 

方法1:Excelの「データの取得」でUTF-8指定して読み込む(推奨)

Excel 2016以降を使っているなら、この方法がもっとも確実です。

手順:
  1. Excelを起動し、空白のブックを開く
  2. メニューの「データ」タブをクリック
  3. 「データの取得」 > 「ファイルから」 >「テキストまたはCSVから」を選択
  4. 対象のCSVファイルを選んでインポート
  5. 表示されたウィンドウで、「元のファイル」を「65001: Unicode (UTF-8)」に変更
  6. 「読み込み」をクリック

これで文字化けせずに正しく読み込めます。

 

方法2:テキストエディタでUTF-8(BOM付き)として保存する

Excelは通常のUTF-8ファイルをShift_JISと誤認識しますが、BOM(Byte Order Mark)付きUTF-8ファイルであればUTF-8として正しく認識する場合が多いです。

手順:
  1. CSVファイルをWindowsであればメモ帳で開く
  2. メニューの「ファイル」→「名前を付けて保存」を選択
  3. 「ファイルの種類」を「すべてのファイル」にし、ファイル名の拡張子を「.csv」とする
  4. 文字コード」を「UTF-8(BOM付き)」に設定(※BOM付きで保存されます)
  5. 保存
BOM付きで保存
UTF-8(BOM付き)で保存

保存したファイルをExcelで開くと、文字化けせずに日本語が正しく表示されるはずです。

 

注意点:この方法は避けましょう

  • エクスプローラーから CSVファイルをダブルクリックして開く方法 は、Excelが自動的にShift_JISと判定してしまうため、文字化けの原因になります
    必ず「データの取得」や「メモ帳保存」などの方法を使いましょう。

 


 

CSV出力プログラムを開発する方向け – PythonでUTF-8(BOM付き)で出力する方法

 

アプリケーションやスクリプトでCSVを自動生成する場合、UTF-8(BOM付き)で保存することでExcelとの互換性を高められます。

Pythonでのサンプルコード:
import csv

# BOM付きUTF-8でCSVファイルを保存する
with open("output.csv", mode="w", encoding="utf-8-sig", newline="") as f:
writer = csv.writer(f)
writer.writerow(["名前", "年齢", "所属"])
writer.writerow(["山田太郎", 30, "営業部"])
writer.writerow(["鈴木花子", 25, "開発部"])

ポイントは encoding="utf-8-sig" を指定することです。
これにより、Excelでも正しく読み込めるBOM付きUTF-8ファイルが生成されます。

 


 

まとめ

 

最後に、文字化けを回避するための方法を一覧表にまとめました。

方法メリット対応環境
ExcelからUTF-8指定で読み込むもっとも確実な方法。データを一括で読み込め、文字化けを防げるExcel 2016以降
メモ帳でBOM付きUTF-8保存ファイルをダブルクリックで開いても正しく表示されやすいすべてのExcel
Pythonでutf-8-sig形式で出力プログラムからCSV出力する際に最適。Excelとの互換性が高い開発用途

いずれの方法も、「ExcelがShift_JISを前提としてCSVを開く」という前提に対処するための手段です。

自分の作業環境や目的に応じて、最適な方法を選択してください。

 

本日も最後までお読みいただきありがとうございました。

それでは、よいExcelライフを!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール