Excelの文字コードとは?初心者にもわかる基礎知識
「CSVファイルをExcelで開いたら文字化けした…」「UTF-8で保存したいのにうまくいかない…」こうした悩みを抱えていませんか?実はこれらの問題のほとんどは、文字コードの理解と正しい設定で解決できます。
この記事では、Excelにおける文字コードの基本から、文字化けの原因と対処法、UTF-8やShift_JISへの変換方法まで、実務で役立つ情報を網羅的にお伝えします。プログラマーやWeb担当者だけでなく、日常的にExcelを使う事務職の方にも理解できるよう、専門用語にはやさしい解説を添えています。ぜひ最後までお読みください。
そもそも文字コードとは?UTF-8・Shift_JIS・BOMの違いを解説
文字コードとは、コンピュータが文字を数値に変換するための「ルールブック」のようなものです。人間が読む「あ」や「A」といった文字を、コンピュータは内部で数値として処理しています。この変換ルールが文字コードです。
Excelで扱う機会が多い文字コードは、主に以下の3種類です。
| 文字コード名 | 特徴 | 主な用途 |
|---|---|---|
| Shift_JIS(シフトジス) | 日本語Windows環境の標準的な文字コード | 日本国内のレガシーシステム、古いCSV |
| UTF-8(ユーティーエフエイト) | 世界中の文字を扱える国際標準の文字コード | Webサイト、API連携、最新システム |
| UTF-8 BOM付き | UTF-8の先頭に識別情報(BOM)を付加したもの | ExcelでUTF-8を正しく開くための形式 |
BOM(Byte Order Mark)とは
BOM(バイトオーダーマーク)とは、ファイルの先頭に付与される数バイトの識別情報です。Excelは、このBOMがないUTF-8ファイルを開くとShift_JISとして誤認識してしまい、文字化けが起きます。これがExcelの文字コード問題で最も多い原因です。
つまり、ExcelでUTF-8のCSVを正しく表示するには、BOM付きUTF-8で保存するか、後述するインポート機能を使う必要があります。
ANSIとは何か
Excelやメモ帳で「ANSI」という表記を見かけることがあります。これはWindowsが使用するシステム既定の文字コードを指します。日本語Windowsの場合、ANSIは実質的にShift_JIS(正確にはWindows-31J)と同じです。海外のWindowsでは異なるコードページが使われるため、国際的なファイルのやり取りではANSI形式は避けるのが無難です。
ExcelでCSVファイルが文字化けする原因と仕組み
文字化けが発生するメカニズムを理解しておくと、トラブルに遭遇しても慌てずに対処できます。主な原因を整理しましょう。
原因1:UTF-8(BOMなし)のCSVをダブルクリックで開いている
これが最も多いパターンです。WebシステムやGoogleスプレッドシートからエクスポートしたCSVは、多くの場合UTF-8(BOMなし)で保存されています。このファイルをダブルクリックすると、ExcelはShift_JISと判断して開くため、日本語部分が文字化けします。
原因2:Shift_JISのCSVをUTF-8対応のソフトで開いている
逆のケースもあります。日本の業務システムから出力されたShift_JIS形式のCSVを、UTF-8前提のツール(一部のMac用アプリなど)で開くと文字化けします。
原因3:特殊文字や機種依存文字を含んでいる
「①」「㈱」「髙(はしごだか)」などの機種依存文字は、文字コードによっては正しく変換できません。特にShift_JISからUTF-8に変換する際に、一部の文字が「?」や「□」に化けることがあります。
原因4:保存時の文字コード指定を間違えている
Excelで「CSV UTF-8(コンマ区切り)」と「CSV(コンマ区切り)」を間違えて保存するケースも頻発しています。それぞれの違いを正しく理解することが重要です。
| 保存形式 | 文字コード | BOM |
|---|---|---|
| CSV UTF-8(コンマ区切り)(.csv) | UTF-8 | あり |
| CSV(コンマ区切り)(.csv) | Shift_JIS(ANSI) | なし |
この2つの違いを把握しておくだけで、文字化けトラブルの大半を防げます。
ExcelでUTF-8のCSVを文字化けせずに開く5つの方法
ここからは実践編です。UTF-8のCSVをExcelで正しく開くための具体的な手順をご紹介します。状況に応じて最適な方法を選んでください。
方法1:Excelの「データの取得」機能を使う(最も確実)
Excel 2016以降で使えるPower Query(パワークエリ)を利用した方法です。文字コードを手動で指定できるため、最も確実に文字化けを防げます。
- Excelを起動し、新しい空白のブックを開きます
- 「データ」タブ → 「データの取得」 → 「ファイルから」 → 「テキスト/CSVから」を選択します
- 対象のCSVファイルを選択して「インポート」をクリックします
- プレビュー画面の左上にある「元のファイル」ドロップダウンで「65001: Unicode (UTF-8)」を選択します
- プレビューで文字化けが解消されていることを確認し、「読み込み」をクリックします
この方法では、区切り文字(カンマ・タブなど)やデータ型も細かく設定できます。業務で大量のCSVを扱う方には特におすすめの方法です。
方法2:メモ帳でBOMを付けてから開く
シンプルですが効果的な方法です。Windows標準のメモ帳を活用します。
- CSVファイルを右クリック → 「プログラムから開く」 → 「メモ帳」を選択します
- メモ帳で「ファイル」 → 「名前を付けて保存」を選択します
- 「文字コード」のドロップダウンで「UTF-8(BOM付き)」を選択します
- ファイル名はそのまま、「保存」をクリックします(上書き保存でOKです)
- 保存したCSVファイルをExcelで開くと、文字化けせずに表示されます
Windows 10以降のメモ帳は「UTF-8(BOM付き)」を明示的に選べるため、この方法が簡単です。Windows 8以前の場合は、メモ帳の「UTF-8」がBOM付きで保存されるので、そのまま「UTF-8」を選択してください。
方法3:Excelのレガシーテキストインポートウィザードを使う
従来のExcelに搭載されていたテキストインポートウィザードを使う方法です。Excel 2016以降では既定で無効になっているため、設定の変更が必要です。
- 「ファイル」 → 「オプション」 → 「データ」を開きます
- 「レガシ データ インポート ウィザードの表示」セクションで「テキストから(レガシ)」にチェックを入れます
- 「OK」で設定を保存します
- 「データ」タブ → 「データの取得」 → 「レガシ ウィザード」 → 「テキストから(レガシ)」を選択します
- ファイルの取り込みウィザードで「65001 : Unicode (UTF-8)」を指定して進めます
Power Queryに慣れていない方や、旧バージョンのExcelとの互換性を重視する場合に便利な方法です。
方法4:Googleスプレッドシート経由で変換する
インターネット環境があれば、Googleスプレッドシートを中継する方法もあります。
- Googleドライブに対象のCSVファイルをアップロードします
- Googleスプレッドシートで開きます(自動的に文字コードを判別してくれます)
- 「ファイル」 → 「ダウンロード」 → 「Microsoft Excel (.xlsx)」を選択します
- ダウンロードした.xlsxファイルをExcelで開きます
Googleスプレッドシートは文字コードの自動判別に優れているため、手軽な方法として覚えておくと便利です。
方法5:コマンドラインやスクリプトで一括変換する
大量のCSVファイルを処理する場合は、PowerShellを使った一括変換が効率的です。以下は簡単なPowerShellコマンドの例です。
PowerShellでの変換例:
Get-Content -Path “input.csv” -Encoding UTF8 | Set-Content -Path “output.csv” -Encoding UTF8BOM
このコマンドは、UTF-8(BOMなし)のファイルをUTF-8(BOM付き)に変換します。大量のファイルがある場合はForEachループで処理することで、数百ファイルでも一瞬で変換できます。IT部門やエンジニアの方にはこの方法がおすすめです。
ExcelでCSVをUTF-8やShift_JISで保存する正しい手順
Excelで作成したデータをCSVとして保存する際も、文字コードの指定は重要です。用途に応じた正しい保存方法を解説します。
UTF-8(BOM付き)で保存する方法
- Excelで対象のファイルを開きます
- 「ファイル」 → 「名前を付けて保存」を選択します
- ファイルの種類で「CSV UTF-8(コンマ区切り)(.csv)」を選択します
- 「保存」をクリックします
この方法で保存されたCSVはUTF-8 BOM付きになります。他のExcelユーザーが開いても文字化けしにくい形式です。
Shift_JIS(ANSI)で保存する方法
- Excelで対象のファイルを開きます
- 「ファイル」 → 「名前を付けて保存」を選択します
- ファイルの種類で「CSV(コンマ区切り)(.csv)」を選択します
- 「保存」をクリックします
日本語Windows環境で作成されるCSVは、この方法でShift_JIS形式になります。日本の古い業務システムへのインポート時に必要となるケースが多い形式です。
UTF-8(BOMなし)で保存したい場合
Webアプリケーションやプログラムとの連携では、BOMなしのUTF-8が求められることがあります。残念ながら、Excelの標準機能ではBOMなしUTF-8での保存はできません。以下の方法で対応しましょう。
- 一度「CSV UTF-8」で保存し、メモ帳やVisual Studio Codeで「UTF-8(BOMなし)」に再保存する
- PowerShellで変換する:Get-Content -Path “input.csv” | Set-Content -Path “output.csv” -Encoding UTF8
- サクラエディタやTeraPadなどのテキストエディタで文字コードを指定して保存する
特にVisual Studio Code(VS Code)は、画面右下のステータスバーで文字コードを確認・変更できるため、非常に便利です。
実務でよくあるExcel文字コードのトラブル事例と対処法
ここでは、実際の業務現場でよく遭遇する文字コードトラブルの事例と、その具体的な解決方法をご紹介します。
事例1:ECサイトの商品CSVが文字化けする
Amazonやショッピングモールの管理画面からダウンロードした商品データCSVが文字化けするケースです。多くのECプラットフォームはUTF-8(BOMなし)でCSVを出力します。
対処法:前述の「データの取得」機能で文字コードをUTF-8に指定して開くか、メモ帳でBOMを付けてから開きましょう。
事例2:会計ソフトへのCSVインポートでエラーが出る
ExcelでUTF-8保存したCSVを弥生会計やfreeeにインポートすると、エラーや文字化けが起きることがあります。日本の会計ソフトの中にはShift_JISのみ対応しているものが残っています。
対処法:CSVを「CSV(コンマ区切り)」すなわちShift_JIS形式で保存し直してからインポートしてください。どの文字コードに対応しているかは、ソフトのマニュアルで確認しましょう。
事例3:Mac(Numbers)で作成したCSVがWindows Excelで文字化けする
MacのNumbersやExcel for Macで保存したCSVをWindowsで開くと文字化けすることがあります。これはMacがUTF-8(BOMなし)でCSVを保存するためです。
対処法:Mac側で保存する際に、Numbers の場合は「ファイル」→「書き出す」→「CSV」→「テキストエンコーディング」で「日本語(Windows, DOS)」を選択するとShift_JISで保存できます。または、Windows側で「データの取得」機能を使ってUTF-8指定で開きましょう。
事例4:データベースから出力したCSVの一部だけ文字化けする
CSVの大半は正常に表示されるのに、特定のセルだけ文字化けするパターンです。この場合、機種依存文字が原因であることが多いです。
対処法:「髙」「﨑」「①」「㈱」などの文字がデータに含まれていないか確認してください。Shift_JISからUTF-8への変換では問題ありませんが、その逆(UTF-8からShift_JIS)では、Shift_JISに存在しない文字が化ける場合があります。このような文字はUTF-8のまま扱うか、代替文字(「高」「崎」「(1)」「(株)」など)に置き換える対応が必要です。
事例5:Excelで開くと先頭の0が消える・電話番号が数値になる
これは厳密には文字コードの問題ではありませんが、CSVをExcelで開く際に同時に発生しやすいトラブルです。「0312345678」という電話番号が「312345678」になったり、「001」が「1」になったりします。
対処法:「データの取得」機能でCSVを読み込む際に、該当列のデータ型を「テキスト」に変更して読み込みましょう。ダブルクリックで開くと自動的に数値として認識されてしまうため、必ずインポート機能を使うことが重要です。
Excel文字コードに関する知っておきたい豆知識
ここでは、日常的なExcel作業をさらにスムーズにするための、文字コードに関する応用知識をお伝えします。
Excel 2019以降は文字コード対応が改善されている
Microsoft 365やExcel 2019以降では、UTF-8の取り扱いが徐々に改善されています。一部の環境ではBOMなしUTF-8のCSVも自動判別して正しく開けるケースが増えています。ただし、環境やファイル内容によって動作が異なるため、確実を期すなら前述の「データの取得」機能を使うのが安全です。
CSVとTSVの違いと文字コードの関係
CSV(Comma-Separated Values)はカンマ区切り、TSV(Tab-Separated Values)はタブ区切りのテキストファイルです。どちらも文字コードの問題は同様に発生します。TSVファイルをExcelで扱う場合も、インポート時に文字コードと区切り文字を正しく指定することが大切です。
ファイルの文字コードを確認する方法
「このCSVは何の文字コードで保存されているのだろう?」と迷ったときの確認方法をご紹介します。
- メモ帳:ファイルを開き、「名前を付けて保存」画面の文字コード欄で現在の文字コードが表示されます
- Visual Studio Code:画面右下のステータスバーに「UTF-8」「Shift_JIS」などと表示されます
- サクラエディタ:画面右下に文字コードとBOMの有無が表示されます
- nkfコマンド(Linux/Mac):nkf –guess ファイル名 で文字コードを判別できます
迷ったらVS Codeで開くのが最も手軽で正確です。無料で使えるので、ぜひインストールしておきましょう。
VBA(マクロ)で文字コードを指定してファイルを読み書きする
Excel VBAを使う場合、標準のOpenステートメントではUTF-8に対応していません。UTF-8のファイルを扱うには、ADODB.Streamオブジェクトを使用する方法が一般的です。
以下は基本的な考え方です。
- ADODB.Streamオブジェクトを作成します
- Charsetプロパティに「UTF-8」を指定します
- LoadFromFileまたはSaveToFileでファイルを読み書きします
VBAで大量のCSVを自動処理する業務がある場合は、この手法を覚えておくと生産性が大きく向上します。
まとめ:Excel文字コード問題は正しい知識で解決できる
この記事でお伝えした内容を整理します。
- 文字コードとは、コンピュータが文字を数値で扱うための変換ルールのことです
- Excelで頻出する文字コードはShift_JISとUTF-8の2つです
- ExcelでCSVが文字化けする最大の原因は、UTF-8(BOMなし)ファイルをダブルクリックで開くことです
- 最も確実な対処法は、Excelの「データの取得」機能で文字コードを指定してインポートすることです
- Excelで「CSV UTF-8(コンマ区切り)」を選ぶとBOM付きUTF-8で保存されます
- 「CSV(コンマ区切り)」を選ぶとShift_JISで保存されます
- BOMなしUTF-8で保存したい場合はVS Codeなどの外部ツールを使いましょう
- ファイルの文字コードが不明なときはVS Codeやメモ帳で確認できます
文字コードの仕組みを理解しておけば、どんなファイルを受け取っても冷静に対処できます。この記事をブックマークしておき、困ったときにいつでも参照してください。
よくある質問(FAQ)
ExcelでCSVファイルを開くと文字化けするのはなぜですか?
最も多い原因は、UTF-8(BOMなし)で保存されたCSVファイルをExcelでダブルクリックして開いていることです。ExcelはBOMがないUTF-8ファイルをShift_JISと誤認識するため、日本語が文字化けします。「データ」タブの「データの取得」機能でUTF-8を指定してインポートするか、メモ帳でBOM付きUTF-8に再保存してから開くと解決します。
ExcelでCSVをUTF-8で保存するにはどうすればいいですか?
「ファイル」→「名前を付けて保存」で、ファイルの種類を「CSV UTF-8(コンマ区切り)(*.csv)」に選択して保存してください。これによりUTF-8(BOM付き)で保存されます。この選択肢はExcel 2016以降で利用可能です。
UTF-8とShift_JISの違いは何ですか?
Shift_JISは日本語に特化した文字コードで、日本語Windowsの標準でした。UTF-8は世界中のほぼすべての言語の文字を扱える国際標準の文字コードです。現在はWebサイトやAPI連携ではUTF-8が主流ですが、日本の古い業務システムではShift_JISが必要な場合もあります。
BOM(バイトオーダーマーク)とは何ですか?
BOMはファイルの先頭に付与される数バイトの識別情報で、そのファイルがUTF-8やUTF-16であることをソフトウェアに伝える目印です。ExcelはBOMがあるとUTF-8として正しく認識できますが、BOMがないとShift_JISと誤認識して文字化けを起こします。
ExcelでBOMなしのUTF-8としてCSVを保存できますか?
Excelの標準機能ではBOMなしUTF-8での保存はできません。一度「CSV UTF-8」で保存した後、Visual Studio Codeやサクラエディタなどのテキストエディタで開き、文字コードを「UTF-8(BOMなし)」に変更して保存し直してください。PowerShellコマンドで変換する方法も効率的です。
MacとWindows間でCSVをやり取りすると文字化けするのですが対処法はありますか?
MacはUTF-8(BOMなし)でCSVを保存することが多く、WindowsのExcelで開くと文字化けします。Mac側でShift_JISを指定して保存するか、Windows側で「データの取得」機能を使いUTF-8を指定してインポートすると解決できます。共通フォーマットとしてUTF-8(BOM付き)を使うのもおすすめです。
CSVの文字コードを確認する方法はありますか?
最も手軽な方法は、Visual Studio Code(VS Code)でファイルを開くことです。画面右下のステータスバーにUTF-8やShift_JISなどの文字コードが表示されます。Windows標準のメモ帳でも「名前を付けて保存」画面で現在の文字コードを確認できます。

コメント