• 更新日 : 2025年12月2日

スプレッドシートのCSVで文字化けが発生したら?対処法まとめ

GoogleスプレッドシートからCSVファイルをダウンロードし、別のアプリケーション(特にMicrosoft Excelなどの表計算ソフトやテキストエディタ)で開いた際に、日本語が文字化けすることがあります。

これは、ファイルに保存された文字のエンコーディング(文字コード)と、ファイルを開くアプリケーションが想定しているエンコーディングが一致しないために起こります。

この記事では、スプレッドシートのCSVで文字化けが発生する原因を解説し、最も一般的な解決策であるエンコーディングの変換方法を、具体的にステップバイステップでご紹介します。

スプレッドシートのCSVで文字化けが発生する原因は?

文字化けの主な原因は、エンコーディング(文字コード)の不一致です。

Googleスプレッドシートは、CSV形式でファイルをダウンロードする際、国際標準であるUTF-8という文字コードを使用します。これは、日本語を含む世界中のほとんどの文字を正しく扱える、現在最も推奨されているエンコーディングです。

一方で、特に古いバージョンのMicrosoft Excelなど、特定のアプリケーションは、日本語のCSVファイルを開く際に、自動的にShift JIS(またはCP932)という、日本で以前主流だった文字コードを想定して処理しようとします。

この「UTF-8で保存されたファイルを、Shift JISとして開こうとする」という食い違いが、文字化け(特に「???」や意味不明な記号の羅列)を引き起こす原因となります。

操作アプリケーションが使用するエンコーディング
スプレッドシートからの出力(CSV保存)UTF-8
Excelなどでの入力(CSVを開く)多くの日本語環境でShift JISを想定

このギャップを埋めるため、ダウンロードしたファイルを「開く前」または「開いた直後」に、エンコーディングをUTF-8からShift JISに変換するか、アプリケーション側で「これはUTF-8だよ」と明示的に伝える必要があります。

文字化けを回避する対処法は?

文字化けを解消するための方法はいくつかありますが、ここでは特に効果的で、多くのユーザーが利用する3つの主要な対処法を解説します。

対処法 1:テキストエディタでエンコーディングを変換する(環境次第で有効/文字損失に注意)

CSV を Excel で開く前に、テキストエディタで UTF-8 → Shift JIS(CP932) に変換して保存し直す方法です。Shift JIS で表せない文字(絵文字・一部記号・異体字など)は「?」に置換されるため、対象データが Shift JIS で表現可能か事前確認してください。

Windows(メモ帳・サクラエディタ・VS Code など)

CSV を開く → 2) 「名前を付けて保存」または「エンコードを指定して保存」 → 3) 文字コードで 「Shift JIS」または「CP932」 を選択して保存。

※メモ帳では一覧に 「ANSI」 と表示される場合があります。日本語ロケールでは ANSI = CP932 です。

macOS(テキストエディットなど)

CSV を開く → 2) メニュー 「フォーマット」→「プレーンテキストにする」 → 3) 「ファイル」→「保存」→ ダイアログの 「標準テキストのエンコーディング」 で 「Japanese(Shift JIS)」 を選択して保存。

この方法で保存した CSV を Excel で開くと、Shift JIS 前提の環境でも文字化けが起きにくくなります。ただし文字損失の可能性があるため、必要に応じて後述の「UTF-8 のまま取り込む」方法を優先してください。

Shift JIS で表現できる文字だけで構成された CSV であれば、保存し直したファイルを Excel で開いても文字化けしません。絵文字・特殊記号・一部の漢字が含まれる場合は、UTF-8 のまま Excel に取り込む方法(データの取り込み時に文字コードを UTF-8 に指定/BOM 付き UTF-8 で保存)を検討してください。

対処法 2:Excelの「データ取得」機能を利用する(Excel 2016以降推奨)

最近のExcelには、CSVファイルをインポートする際に文字コードを指定できる機能があります。この機能を使えば、ファイルを変換せずに、直接UTF-8のまま開くことが可能です。

  1. Excelを起動し、新しいブックを開きます。
  2. メニューの「データ」タブをクリックします。
  3. 「データ取得と変換」グループにある「テキストまたはCSVから」を選択します。
  4. ダウンロードしたCSVファイルを選択して「インポート」をクリックします。
  5. プレビュー画面が表示されたら、「ファイルの元の形式」(または「ファイルの起源」)のドロップダウンリストで、「65001:Unicode (UTF-8)」を選択します。
  6. データが正しく表示されることを確認し、「読み込み」をクリックします。

これで、UTF-8として正しく認識されたデータがExcelシートに展開されます。特にExcel 2016以降のユーザーにはこの方法が最も推奨されます。

対処法 3(補足):GASでShift JIS書き出しは実装可能だが要注意

Google Apps Scriptでは Utilities.Charset.SHIFT_JIS などを用いてShift JISでの書き出しを実装可能です。ただし、実装の質と対象文字に依存し、Shift JISで表せない文字は変換時に欠落・置換されます。保守性やセキュリティ面も踏まえ、まずは対処法2(Excel側でUTF-8指定インポート)を優先してください。

スプレッドシートから文字化けを避ける方法

Googleスプレッドシートは CSV/TSV いずれも UTF-8(BOMなし) で書き出します。Excelでの文字化けを避けるには、ファイル形式をTSVに変えるだけでは不十分です。次のいずれかを推奨します。

  • Excelの[データ]→[テキスト/CSVから]で取り込み、[ファイルの起源]を「65001: Unicode (UTF-8)」に指定する。(Excel 2016以降の推奨手順)
  • どうしても直接開きたい場合は、BOM付きUTF-8に変換して保存してからExcelで開く(エディタ等でBOMを付与)。ExcelはBOM付きUTF-8を自動判別しやすい挙動があります。
  • 旧環境でShift JISが前提なら、文字損失に注意しつつテキストエディタ等でUTF-8→Shift JISへ変換してから開く(絵文字・一部記号は「?」になる可能性)。

エンコーディングの理解と正しい手順で文字化けを防ぐ

スプレッドシートのCSVで文字化けが起きる主な原因は、UTF-8で保存されたファイルを、ExcelなどがShift JISとして読み込むことによるエンコーディングの不一致です。

この問題を解決するための代表的な方法は次の3つです。

  1. テキストエディタでUTF-8からShift JISに変換して保存し直す(最も確実)
  2. Excelの「データ取得」機能で文字コードをUTF-8に指定して読み込む(Excel 2016以降)
  3. CSVではなくTSV形式(タブ区切り)でダウンロードして開く(文字化けが起きにくい)

いずれの方法でも、事前にエンコーディングを意識して扱うことで、文字化けを防ぎ、異なる環境間でもスムーズにデータを共有できます。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事