Excel(エクセル)でCSVファイルを開いたり、他のシステムからデータを取り込んだときに、こんな経験はありませんか?
- 「文字化けして読めない!」
- 「日本語が ??? に置き換わってしまった…」
- 「数字は見えるが、カタカナ・ひらがなが変な記号になった」
- 「他のシステムとのデータ交換でトラブルが続く」
その原因のほとんどは文字コードにあります。
文字コードとは、コンピューターが文字を認識するためのルールのこと。このルールが合わないと、日本語が正しく表示されずに文字化けが起こります。
この記事では:
- Excelでよく出てくる文字コード(Shift-JIS、UTF-8)の基本
- 文字化けが起こる理由と仕組み
- Excelで文字コードを正しく選ぶ方法
- 実務でよく使う注意点とトラブル解決方法
- 他システムとの連携で失敗しないコツ
を初心者にも分かりやすく解説します。これを読めば、もう「文字化けでデータがめちゃくちゃ!」と慌てることはありません。
文字コードとは?Excelとどう関係がある?

文字コード=文字を数値にしたルール
パソコンは文字をそのまま認識できません。「A」や「あ」といった文字は、内部では数値で管理されています。この「文字をどう数値化するか」のルールが文字コードです。
主要な文字コードの特徴
文字コード | 特徴 | 使用場面 |
---|---|---|
Shift-JIS | 日本のWindowsでよく使われる | Excel標準、古いシステム |
UTF-8 | 世界的標準、多言語対応 | Web、現代システム、国際化 |
EUC-JP | Unix系システムで利用 | 古いサーバー、Linux環境 |
ISO-2022-JP | 日本語メール用 | 古いメールシステム |
なぜ文字化けが起こるのか?
例:「こんにちは」という文字の場合
同じ「こんにちは」でも:
- Shift-JISでは:
82B1 82F1 82C9 82BF 82CD
- UTF-8では:
E38193 E38293 E381AB E381A1 E381AF
異なる数値で表現されます。
文字化けのメカニズム
- UTF-8で「こんにちは」を保存
- Shift-JISとして読み込む
- 数値の解釈が違うため、意味不明な文字が表示される
Excelとの関係
Excelの既定動作
- Windows版Excel:Shift-JISを前提
- Mac版Excel:UTF-8を前提
- Web版Excel:UTF-8を前提
トラブルが起きやすい場面
- UTF-8のCSVをWindows Excelで直接開く
- 他システムから出力されたデータの取り込み
- 国際的なプロジェクトでのデータ交換
- クラウドサービスとの連携
文字コードは「文字を数字にするルール」で、Excelではこれが合わないと文字化けが発生します。
Excelで文字コードを扱う主なシーン

CSVファイルを開くとき
最も多いトラブル場面
CSVファイルをダブルクリックで開くと、Excelは自動的にShift-JISとして解釈します。しかし、実際のファイルがUTF-8だった場合、日本語部分が文字化けします。
具体的な症状
- 英数字:正常に表示
- 日本語:
??????
や縺薙s縺ォ縺。縺ッ
のような意味不明な文字
テキストファイルのインポート
正しい取り込み方法
- 「データ」タブ → 「テキストまたはCSVから」を選択
- ファイルを選択すると、プレビュー画面が表示
- 「ファイルの種類」で文字コードを選択:
65001: Unicode (UTF-8)
932: 日本語 (Shift-JIS)
51932: 日本語 (EUC)
プレビューで確認
- 正しい文字コードを選ぶと、プレビューで日本語が正常表示
- 間違った文字コードだと、プレビューでも文字化け
関数でコード値を確認
Excelには文字コードを確認する関数があります:
ASCII文字の確認
=CODE("A")
結果: 65
Unicode値の確認
=UNICODE("あ")
結果: 12354
文字を戻す関数
=CHAR(65)
結果: A
=UNICHAR(12354)
結果: あ
外部システムとの連携
よくある連携パターン
- 基幹システム → Excel(データ分析用)
- Excel → Webシステム(データアップロード)
- 複数部署間でのCSVファイル共有
- 海外拠点とのデータ交換
ExcelではCSVの取り込み・出力時に文字コードの問題が最も頻繁に発生します。
文字化けを防ぐExcel実践テクニック

方法1:テキストインポートウィザードを使う
最も確実で推奨する方法
手順
- Excelを起動
- 「データ」タブ → 「テキストまたはCSVから」
- 対象のCSVファイルを選択
- プレビュー画面で文字コードを確認・選択
- 日本語が正しく表示されることを確認してから「読み込み」
文字コードの選択肢
- 65001: Unicode (UTF-8):現代的なシステム、Web系
- 932: 日本語 (Shift-JIS):古いWindows系システム
- 51932: 日本語 (EUC):Unix/Linux系システム
プレビューでの確認ポイント
- 日本語の文字が正しく表示されているか
- 記号や特殊文字が適切に認識されているか
- データの区切り(カンマ、タブなど)が正しいか
方法2:メモ帳で文字コードを変換
シンプルで覚えやすい方法
手順
- 問題のCSVファイルをメモ帳で開く
- 「名前を付けて保存」を選択
- 保存時に「文字コード」を選択:
- ANSI:Shift-JIS相当
- UTF-8:UTF-8形式
- UTF-8 BOM付き:ExcelがUTF-8と認識しやすい
- 変換したファイルをExcelで開く
注意点
- 元ファイルのバックアップを取る
- 文字コード変換で一部の文字が失われる可能性がある
- ファイルサイズが変わる場合がある
方法3:Excel自体をUTF-8対応CSVで保存
他システムに渡すファイルの作成
手順
- Excelでデータを作成・編集
- 「名前を付けて保存」を選択
- ファイルの種類で以下を選択:
- CSV UTF-8(コンマ区切り):UTF-8形式
- CSV(コンマ区切り):Shift-JIS形式
使い分けのポイント
- 現代的なシステム:CSV UTF-8を選択
- 古いWindowsシステム:通常のCSVを選択
- 不明な場合:相手先に確認
顧客マスタのやり取りでの実例
シチュエーション
- A社(Excel + Shift-JIS)⇔ B社(Webシステム + UTF-8)
- 顧客リストの定期的な交換が必要
問題
- A社が通常のCSV保存をすると、B社で日本語が文字化け
- B社がUTF-8でCSV出力すると、A社で日本語が文字化け
解決方法
- A社:「CSV UTF-8」で保存してB社に送信
- B社:UTF-8 BOM付きで出力してA社に送信
- A社:受信時は「テキストインポート」でUTF-8指定
方法4:Power Queryを活用
Excel 2016以降の高機能な方法
手順
- 「データ」タブ → 「データの取得」
- 「ファイルから」→ 「テキスト/CSV」
- 詳細な文字コード設定とデータ変換が可能
- 繰り返し処理も自動化できる
よくあるトラブルと解決方法

文字化けの症状別対処法
症状1:日本語がすべて「?」になる
- 原因:文字コードの完全な不一致
- 解決:テキストインポートでUTF-8を試す
症状2:一部の漢字だけが変になる
- 原因:機種依存文字や古い文字コード
- 解決:文字の置き換えまたは入力し直し
症状3:記号や数字は正常、ひらがな・カタカナのみ化ける
- 原因:EUC-JPとShift-JISの混在
- 解決:EUC-JP指定でインポート
Excel版別の対応
Excel 2013以前
- 「データ」→「外部データの取り込み」→「テキストファイル」
- テキストインポートウィザードで文字コード選択
Excel 2016以降
- 「データ」→「テキストまたはCSVから」
- 新しいインポート機能でより直感的
Excel for Mac
- Windows版と若干操作が異なる
- UTF-8がデフォルトのため、Shift-JIS問題が逆転
ファイル作成者が不明な場合の対処
文字コード推定の手順
- まずUTF-8でインポートを試す
- 文字化けする場合はShift-JISを試す
- それでもダメならEUC-JPを試す
- 文字化けパターンから推定する
推定のヒント
- Web系システム出力:UTF-8の可能性高
- 古いWindowsソフト:Shift-JISの可能性高
- Linux/Unix系:EUC-JPの可能性高
実務での注意点とベストプラクティス

システム間連携での注意点
事前確認事項
- 相手先システムの対応文字コード
- ファイル命名規則の制約
- 特殊文字の扱い方針
- エラー時の対応フロー
データ交換の取り決め
- 文字コードの統一(推奨:UTF-8)
- ファイル形式の標準化
- テストデータでの事前確認
- 定期的な検証体制
大量データ処理での工夫
パフォーマンス向上のコツ
- 不要なデータの事前除去
- 列数の最適化
- Power Queryでの自動化
- バッチ処理の活用
エラー処理の仕組み
- 文字化け検知の自動化
- エラーログの記録
- 復旧手順の標準化
セキュリティ面での配慮
文字コード変換時の注意
- 元データのバックアップ必須
- 変換前後での内容確認
- 機密情報の漏洩防止
- アクセス権限の適切な設定
応用テクニック:VBAでの自動化
文字コード判定の自動化
文字コードを自動判定するVBAマクロの例:
Sub CheckEncoding()
Dim fileName As String
Dim textStream As Object
Dim content As String
' ファイル選択
fileName = Application.GetOpenFilename("Text Files (*.txt;*.csv), *.txt;*.csv")
If fileName <> "False" Then
' UTF-8で読み込み試行
Set textStream = CreateObject("ADODB.Stream")
textStream.Charset = "UTF-8"
textStream.Open
textStream.LoadFromFile fileName
content = textStream.ReadText
textStream.Close
' 結果をメッセージボックスで表示
MsgBox "UTF-8での読み込み結果: " & Left(content, 100)
End If
End Sub
CSVインポートの自動化
Sub ImportUTF8CSV()
Dim ws As Worksheet
Dim queryTable As QueryTable
Set ws = ActiveSheet
' UTF-8指定でCSVインポート
Set queryTable = ws.QueryTables.Add( _
Connection:="TEXT;" & Application.GetOpenFilename(), _
Destination:=ws.Range("A1"))
With queryTable
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.TextFilePlatform = 65001 ' UTF-8
.Refresh
End With
End Sub
まとめ:Excelの文字コードを理解して文字化けゼロへ!
Excelでの文字コード対策のポイント:
- Excelの特徴を理解:Windows版はShift-JIS、現代システムはUTF-8が主流
- 正しいインポート方法:「テキストまたはCSVから」で文字コードを明示的に選択
- 保存時の注意:相手先システムに合わせた文字コードでCSV出力
- 事前の確認:システム間連携では文字コードの取り決めが重要
文字化けを防ぐ鉄則
受け取るデータ
- ファイルの出力元システムを確認
- テキストインポートで適切な文字コードを選択
- プレビューで日本語表示を確認してから読み込み
渡すデータ
- 相手先システムの対応文字コードを確認
- 「CSV UTF-8」または通常CSVを使い分け
- テストファイルで事前確認
今日から始める3ステップ
- 基本操作をマスター:「テキストまたはCSVから」でのインポート方法
- 文字コードを意識:UTF-8、Shift-JISの違いを理解
- 実務で実践:自分の業務でのデータ交換ルールを見直し
コメント