PR
アフィリエイト広告を利用しています
アフィリエイト広告を利用しています

エクセルの文字化けを直す方法|開くと化ける・保存すると「?」になる・VBAで読むと化ける6つの原因と、化け方でわかる早見表【実機で確認】

エクセルの文字化けを直す。化けた文字が、読み方を選び直すと山田太郎に戻る EXCEL数式講座
スポンサーリンク

【この記事について】本記事は 2026年11月13日 時点で、Microsoft の公式サポート情報(記事末尾に出典)を確認し、あわせて Windows 版 Microsoft 365 の Excel(バージョン 16.0・ビルド 20527)で、文字コードの違うファイルを実際に開いたり保存したりして結果を確かめて書いています。確認はプログラムからの自動操作で行ったため、メニューや画面の表示名は Microsoft の公式ヘルプの表記に合わせています。記事中の名前や部署は、本記事で用意した練習用のデータです。本記事の内容の利用は、ご自身の判断と責任でお願いします。

対象環境:Windows 版 Excel(Microsoft 365)。2026年11月13日に動作確認。難易度:ファイルを開く・保存するができる人向け(VBA の節だけはマクロを書いたことがある人向け)。

エクセルの文字化けは、ファイルが書かれた文字のルール(文字コード)と、エクセルが読んだルールが食い違うと起きます。データ自体は壊れていないことが多く、化けたまま上書き保存しなければ元に戻せます。直し方は、ダブルクリックで開かずに[データ]→[テキストまたは CSV から]で読み込み、[元のファイル]を「65001: Unicode (UTF-8)」か「932: 日本語 (シフト JIS)」に合わせることです。この記事では、化け方の見た目から原因を当てる早見表と、6つの原因ごとの直し方を、実機の結果つきでまとめます。

エクセルの文字化けの早見表。見慣れない漢字と半角カナならUTF-8をシフトJISとして読んだので元のファイルで65001を選ぶ。ひし形の?ならシフトJISをUTF-8として読んだので932を選ぶ。ただの?は保存で消えた文字なのでCSV UTF-8で保存し直す。1文字だけ四角ならUNICODE関数で番号を見て、63以外ならフォントの問題。化けたまま上書き保存しない

スポンサーリンク

まず確認|化け方を見れば、原因がだいたいわかる

文字化けには「化け方のクセ」があります。実機で、山田太郎 という文字をわざと間違ったルールで読ませると、次のように化けました。いまの画面と見比べてください。

画面の見え方 実機で出た例 何が起きているか 読む場所
見慣れない漢字と半角カナが混ざる(縺 繧 螻 などが多い) 螻ア逕ー螟ェ驛・ UTF-8 のファイルを、シフト JIS として読んだ 原因1・2・6
ひし形の中に「?」が入った記号(�)だらけ �R�c���Y シフト JIS のファイルを、UTF-8 として読んだ 原因3
ただの半角の「?」になっている ??野 保存したときに、その文字が消えた(元に戻らない) 原因4
「□」「・」など、1文字だけ記号に見える ─ データは無事で、見た目(フォント)だけの問題のことがある 原因5

いちばん多いのは1行目の形です。もう1つ、実機で気づいたことがあります。1行目の形で化けたとき、「名前」と「部署」が1つのセルにつながって、右の列が空になりました。化けると区切りのコンマまで巻き込まれて、列がずれることがあります。列がずれているときも、まず文字コードを疑ってください。

原因1:UTF-8 のファイルを、ダブルクリックで開いた(いちばん多い)

社内システムや Web サービスから受け取ったデータの多くは、UTF-8 という文字コードで書かれています。ところが、UTF-8 のファイルの先頭に「BOM(ボム)」という目印が付いていないと、ダブルクリックで開いたときにエクセルがシフト JIS として読んでしまい、化けます。

実機で、中身がまったく同じ3つのファイルをダブルクリックと同じ方法で開いて比べました。

ファイルの文字コード 開いた結果(「名前」の列)
UTF-8(BOM なし) 化けた:螻ア逕ー螟ェ驛・蝟カ讌ュ驛ィ(隣の列は空)
UTF-8(BOM あり) 正しく出た:山田太郎
シフト JIS 正しく出た:山田太郎

Microsoft の公式ヘルプでも、UTF-8 のファイルは BOM 付きで保存されていれば通常どおり開ける、それ以外はデータの取得(Power Query)などの方法で開く、と案内されています。

直し方:開き方を変えます。ファイルはそのままで大丈夫です。

  1. 化けて開いたブックは、保存せずに閉じます
  2. 新しい空のブックを開き、[データ]タブ →[テキストまたは CSV から]を押します
  3. ファイルを選んで[インポート]を押します
  4. 出てきたプレビュー画面の[元のファイル]で 「65001: Unicode (UTF-8)」 を選びます
  5. プレビューの文字が読めるようになったら[読み込み]を押します

実機でも、同じ UTF-8 のファイルを、この読み込み方法で文字コードを「932(シフト JIS)」にすると 螻ア逕ー螟ェ驛・ と化け、「65001(UTF-8)」にすると 山田太郎 と正しく読めました。文字コードを選び直すだけで直るということです。

BOM の仕組みや、ファイル自体を変換して直す方法は、CSV に絞った次の記事で詳しく書いています。

【保存版】CSV文字化けを即解決!UTF-8とShift_JISの直し方
CSVの文字化けでお悩みの方は必見。CSV 文字化け UTF-8 直し方を、Excel取り込み・UTF-8変換・BOMの判断で解説。実はShift_JISの読み違いが原因。読めば最短で直し、再発も防げます。

原因2:拡張子は .xls なのに、中身がただのテキストだった

システムから「Excel 形式で出力」したファイルが、実は中身がタブやコンマで区切ったテキストで、名前だけ .xls ということがあります。この場合も、中身が UTF-8 だと原因1と同じように化けます。

実機で、UTF-8 のタブ区切りテキストに .xls という名前を付けて開くと、原因1とまったく同じ 螻ア逕ー螟ェ驛・ という化け方になりました。

見分け方:ファイルを右クリック →[プログラムから開く]→[メモ帳]で開いてみます。文字や数字がタブやコンマで並んで読めるなら、中身はテキストです(本物のエクセルのファイルなら、メモ帳では意味のある文字になりません)。

直し方:元のファイルをコピーしてから、コピーの拡張子を .txt に変え、原因1の手順([データ]→[テキストまたは CSV から]→[元のファイル])で読み込みます。拡張子が見えないときは、エクスプローラーで拡張子の表示をオンにします(Windows 11 では[表示]→[表示]→[ファイル名拡張子])。

原因3:シフト JIS のファイルを、UTF-8 として読み込んだ(逆の取り違え)

原因1を直そうとして、何でも「65001: Unicode (UTF-8)」で読み込むと、今度は逆に化けることがあります。古い社内システムや、エクセルで普通に「CSV」として保存したファイルは、シフト JIS で書かれていることが多いからです。

実機で、シフト JIS のファイルを UTF-8 として読ませると、山田太郎 が �R�c���Y になりました。ひし形の「?」は、「このルールでは読めない文字があった」という印です。

直し方:読み込みのプレビュー画面で、[元のファイル]を 「932: 日本語 (シフト JIS)」 に変えます。実機でも、同じファイルを 932 で読むと正しく出ました。

どちらか分からないときは、65001 と 932 を切り替えて、プレビューの文字が読めるほうを選ぶのが一番早い確かめ方です。プレビューは読み込む前に見られるので、何度切り替えても大丈夫です。

原因4:エクセルで「CSV」に保存したら、一部の文字が「?」になった

ここだけは、ほかの原因と違って読み方の問題ではありません。保存した時点で、文字そのものが「?」に置き換わっています。

エクセルの保存形式には「CSV (コンマ区切り)」と「CSV UTF-8 (コンマ区切り)」の2つがあります。実機で、いろいろな文字を入れたシートを両方の形式で保存し、中身を比べました。

セルに入れた文字 「CSV (コンマ区切り)」で保存 「CSV UTF-8」で保存
髙橋(はしごだかの髙) そのまま残った そのまま残った
①② そのまま残った そのまま残った
半角カナ カタカナ そのまま残った そのまま残った
𠮷野(つちよしの𠮷) ??野 になった そのまま残った
波ダッシュ 〜 ? になった そのまま残った
全角チルダ ~ そのまま残った そのまま残った
韓国語 한국 ?? になった そのまま残った
アクセント付き Café Caf? になった そのまま残った
絵文字 ?? になった そのまま残った

見た目がそっくりな「〜」と「~」で結果が分かれたのがポイントです。Web やメールから貼り付けた住所や時間(「9時〜17時」など)は、知らないうちに「〜」が入っていることがあります。

そして、この「?」は元に戻りません。保存したファイルを開き直しても ??野 のままで、そのセルの文字の番号を UNICODE 関数で調べると 63(半角の「?」の番号) が返りました。もとの文字の情報は、ファイルのどこにも残っていないということです。

直し方:

  1. 「?」になった CSV ではなく、元のエクセルのブック(.xlsx)を開きます
  2. [ファイル]→[名前を付けて保存]で、ファイルの種類に 「CSV UTF-8 (コンマ区切り)」 を選んで保存します

実機では、この形式で保存したファイルの先頭に BOM が付いていて、ダブルクリックで開き直しても全部の文字がそのまま出ました。

ただし、渡す先のシステムがシフト JIS しか読めない場合は、UTF-8 で渡すと今度は相手の画面で化けます。「CSV UTF-8 で送ってもよいか」を先に確認し、シフト JIS 指定なら、上の表で「?」になった文字を言い換えてから保存してください(「〜」を「~」に、など)。

原因5:「□」や「・」に見えるのは、データではなく見た目の問題のことがある

ファイル全体ではなく、特定の1文字だけが四角や点に見えるときは、文字はちゃんとセルに入っていて、使っているフォントにその文字の形が入っていないだけのことがあります。

見た目ではどちらか分からないので、空いているセルに次の式を入れて、文字の番号を調べます(A1 を調べたいセルに変えてください)。

=UNICODE(A1)

この関数は、セルの先頭の1文字の番号を返します。実機では、𠮷野 を入れたセルで 134071、絵文字を入れたセルで 128512 が返りました。

  • 63 以外の大きな番号が返る:文字はセルに入っています。見た目の問題なので、セルのフォントを[游ゴシック]などに変えて表示が変わるか試します。データを打ち直す必要はありません
  • 63 が返る:そのセルの中身は本当に半角の「?」です。原因4のとおり、元のデータから取り直します

調べたい文字が先頭にないときは、=UNICODE(MID(A1,3,1)) のように、何文字目かを指定して調べられます。

原因6:VBA でテキストファイルを読むと化ける

マクロで CSV やテキストを読み込んでいる場合、昔からある Open と Line Input で読むと、UTF-8 のファイルは原因1と同じように化けます。

次のマクロで、UTF-8 で書かれた3行のファイルの2行目を読むと、実機では 001,螻ア逕ー螟ェ驛・蝟カ讌ュ驛ィ と表示されました。

Sub ReadWithLineInput()
    Dim f As Integer, s As String
    f = FreeFile
    Open "C:\data\社員.csv" For Input As #f
    Line Input #f, s        ' 1行目(見出し)
    Line Input #f, s        ' 2行目
    Close #f
    MsgBox s
End Sub

直し方:文字コードを指定して読める ADODB.Stream を使います。次のマクロに変えると、同じファイルの2行目が 001,山田太郎,営業部 と正しく出ました。参照設定の追加は要りません。

Sub ReadUtf8Text()
    Dim st As Object, buf As String
    Set st = CreateObject("ADODB.Stream")
    st.Type = 2               ' テキストとして読む
    st.Charset = "UTF-8"      ' ファイルの文字コードを指定
    st.Open
    st.LoadFromFile "C:\data\社員.csv"
    buf = st.ReadText(-1)     ' -1 = 全部読む
    st.Close
    MsgBox Split(buf, vbCrLf)(1)
End Sub

"C:\data\社員.csv" の部分は、あなたのファイルの場所に変えてください。ファイルがシフト JIS なら、"UTF-8" を "Shift_JIS" に変えます。どちらか分からないときは、原因3と同じように両方試して、読めるほうを使います。VBA でファイルを開く基本は、次の記事にまとめています。

【コピペOK】VBAでファイル(ブック)を開く方法|Workbooks.Open・ダイアログで選ぶ・フォルダ内を全部開く書き方と「開けない」原因5つ(実機確認)
VBAでファイルを開くには Set wb = Workbooks.Open(場所) と書きます。同じフォルダのファイルを開く、ダイアログで選ぶ、フォルダ内を全部開く、読み取り専用で開く書き方と、開けないときの原因5つを、実機で出たエラーメッセージつきでまとめました。

やってはいけないこと|化けたまま上書き保存しない

化けた状態で「とりあえず保存」すると、化けた文字がそのまま本当のデータになります。実機でも、化けて開いたファイルを .xlsx で保存して開き直すと、螻ア逕ー螟ェ驛・蝟カ讌ュ驛ィ のまま残りました。

「化けた文字を逆の手順で変換すれば戻るのでは?」と思うかもしれません。試しに、この化けた文字をプログラムで逆向きに変換してみたところ、山田太郁E営業部 となりました。「郎」が「郁」に変わり、区切りのコンマも消えています。化けたときに途中で失われた情報があるので、完全には戻りません。

  • 化けたら、保存せずに閉じて、元のファイルから読み込み直す
  • すでに上書きしてしまったら、送ってくれた人やシステムから、元のファイルをもう一度もらう

化けたファイルを開いたときに、手が勝手に Ctrl+S を押さないよう、それだけ気をつけてください。

どれか分からないときは、AIに「化けた文字」を見せて聞く

早見表で見分けがつかないときは、チャット型のAIに化けた文字そのものを見せると、どの取り違えかの見当をつけてくれます(2026年11月13日時点の使い方です。画面や名前は変わることがあります)。

  1. 化けているセルの文字を、数文字だけコピーします(名前や金額など、社外に出せない中身が分かる部分は避けます)
  2. ChatGPT や Claude のチャット画面を開き、次のように送ります
エクセルでファイルを開いたら、次のように文字化けしました。
「縺薙l縺ッ」
元の文字コードは UTF-8 とシフト JIS のどちらだと考えられますか。
エクセルの[データ]→[テキストまたは CSV から]で
[元のファイル]に何を選べばよいかも教えてください。

AIの答えは見当です。決め手は、読み込みのプレビューで実際に文字が読めるかどうかです。答えの番号を選んでプレビューが読めたら正解、読めなければもう一方を試してください。

会社の Excel に Copilot のボタンがあるかどうかは、契約や会社の設定しだいです。無料で使える範囲と職場向けの違いは、次の記事で整理しています。

Copilotは無料でどこまで使える?個人・職場の違いと有料プランとの差を公式情報で整理【2026年9月確認】
Copilotは無料でも使えますが、どこで何ができるかは立場で分かれます。個人の無料版、Personal・Family・Premiumの所有者、職場のCopilot Chat(追加料金なし)、有料のMicrosoft 365 Copilotの違いを、Microsoft公式ページの記載(2026年9月24日確認)をもとに整理します。

よくある質問(FAQ)

Q. メモ帳で開くと読めるのに、エクセルだけ化けます。

A. ファイル自体は壊れていません。エクセルの読み方の問題なので、原因1の手順([データ]→[テキストまたは CSV から]→[元のファイル]で 65001 を選ぶ)で読み込んでください。

Q. 毎回、読み込みの手順を踏むのが面倒です。

A. 送ってくれる人に、エクセルの[名前を付けて保存]で 「CSV UTF-8 (コンマ区切り)」 を選んで保存してもらえないか相談してみてください。実機では、この形式のファイルは先頭に BOM が付き、ダブルクリックでそのまま正しく開けました。システムが出力するファイルなら、出力の設定に文字コードや BOM の選択がないか、担当者に確かめてもらうのが近道です。

Q. 文字化けと一緒に、先頭の 0 が消えたり日付が数字になったりしました。

A. それは文字コードとは別の問題です。ダブルクリックで開くと、エクセルが列の形を自動で決めてしまうために起きます。読み込みの手順で列の形を指定すれば防げます。くわしくは次の記事にまとめています。

エクセルで0が消える原因7つと直し方|先頭の0・CSVを開くと消える・0が空白になる【実機で確認】
エクセルで0が消えるのは、Excelが数字を「数値」として受け取り、先頭の0を落とすからです。0123を残すなら先頭に ' を付けて入力するのが最短。CSVを開くと消える、0000表示が数式で消える、0が空白に見える、小数の末尾の0が消えるまで、原因7つと直し方をMicrosoft 365のExcelで実際に試した結果つきで整理しました。

Q. エクセルの普通のファイル(.xlsx)を開いたら、中身がめちゃくちゃでした。

A. 中身が記号だらけで開けない、エラーが出る、という場合は、文字コードではなくファイルの破損や開き方の問題のことがあります。まずは次の記事の手順で切り分けてください。

エクセルが開かない・応答なしの原因8つと直し方|真っ白・破損・セーフモード
エクセルが開かない、応答なしで固まる、開いても真っ白、「ファイルが破損しているため開くことができません」。症状別の早見表で原因を特定し、ブロックの解除・セーフモード起動・開いて修復するまで、画面の場所つきで8つの直し方を順番に解説します。

まとめ

  • 文字化けは、ファイルの文字コードとエクセルの読み方が食い違うと起きる。化けたまま上書き保存しなければ、元のファイルから読み直せる
  • 見慣れない漢字と半角カナ(螻ア逕ー など)なら UTF-8 を読み違えている。[データ]→[テキストまたは CSV から]→[元のファイル]で 65001 を選ぶ
  • ひし形の「?」(�)なら逆で、932(シフト JIS) を選ぶ
  • ただの「?」は、「CSV (コンマ区切り)」で保存したときに消えた文字。元のブックから 「CSV UTF-8」 で保存し直す
  • 1文字だけ「□」なら、=UNICODE(A1) で番号を見る。63 以外ならデータは無事で、フォントの問題
  • VBA で読むなら ADODB.Stream で文字コードを指定する

開いた瞬間に画面が化けると、「データを壊してしまった」とドキッとしますよね。でも、ほとんどの場合、壊れたのは読み方だけで、ファイルの中身は無事です。保存せずに閉じて、読み方を選び直す。それだけで、ちゃんと元の文字が戻ってきます。

次に読む

【保存版】CSV文字化けを即解決!UTF-8とShift_JISの直し方
CSVの文字化けでお悩みの方は必見。CSV 文字化け UTF-8 直し方を、Excel取り込み・UTF-8変換・BOMの判断で解説。実はShift_JISの読み違いが原因。読めば最短で直し、再発も防げます。
エクセルで0が消える原因7つと直し方|先頭の0・CSVを開くと消える・0が空白になる【実機で確認】
エクセルで0が消えるのは、Excelが数字を「数値」として受け取り、先頭の0を落とすからです。0123を残すなら先頭に ' を付けて入力するのが最短。CSVを開くと消える、0000表示が数式で消える、0が空白に見える、小数の末尾の0が消えるまで、原因7つと直し方をMicrosoft 365のExcelで実際に試した結果つきで整理しました。

出典(2026年11月13日 確認)

Excel で CSV UTF-8 ファイルを正しく開くには|Microsoft サポート
https://support.microsoft.com/ja-jp/excel/opening-csv-utf-8-files-correctly-in-excel

テキスト (.txt または .csv) ファイルのインポートまたはエクスポート|Microsoft サポート
https://support.microsoft.com/ja-jp/excel/get-started/import-or-export-text-txt-or-csv-files

UNICODE 関数|Microsoft サポート
https://support.microsoft.com/ja-jp/excel/functions/unicode-function

Csv.Document(Encoding の指定)|Microsoft Learn
https://learn.microsoft.com/ja-jp/powerquery-m/csv-document

XlFileFormat 列挙体(xlCSVUTF8)|Microsoft Learn
https://learn.microsoft.com/ja-jp/office/vba/api/excel.xlfileformat

Charset プロパティ (ADO)|Microsoft Learn
https://learn.microsoft.com/ja-jp/previous-versions/sql/ado/reference/ado-api/charset-property-ado?view=sql-server-ver15


当ブログは、Excel や VBA で手が止まった事務職のみなさんに、その場で直せる手順を届けたい思いで運営しています。
「記事が役に立った」「続きも読んでみたい」と感じていただけたら、下記リンクからのご利用・ご支援で応援してもらえると嬉しいです。

EXCEL数式講座
スポンサーリンク
シェアする
メリ爺をフォローする

コメント

タイトルとURLをコピーしました