【Windows】CSVファイルをExcelで開くと文字化けする時の「UTF-8(BOM付き)」変換手順

【Windows】CSVファイルをExcelで開くと文字化けする時の「UTF-8(BOM付き)」変換手順
🛡️ 超解決

CSVファイルをExcelで開くと、データが文字化けしてしまい困った経験はありませんか。この問題は、主にCSVファイルの文字コードとExcelの読み込み設定が一致しないために発生します。

特に日本語環境では、文字コード「Shift_JIS」と「UTF-8」の混在が原因となることが多いです。

この記事では、CSVファイルの文字化けを解消するため、「UTF-8 BOM付き」に変換する具体的な手順を解説します。業務効率の低下を防ぎ、正確なデータ処理を実現しましょう。

【要点】ExcelでCSVの文字化けを解消する「UTF-8 BOM付き」変換手順

  • メモ帳での文字コード変換: CSVファイルを正しい文字コード「UTF-8 BOM付き」で保存し直すことで、文字化けを解消できます。
  • Excelのデータ取り込み機能: Excelの外部データ取り込み機能を利用し、明示的に文字コードを指定してCSVファイルを正確にインポートできます。
  • PowerShellでの一括変換: 複数のCSVファイルがある場合、PowerShellスクリプトを使って効率的に「UTF-8 BOM付き」へ一括変換できます。

ADVERTISEMENT

CSVファイルがExcelで文字化けする根本的な原因

ExcelでCSVファイルを開くと文字化けする主な原因は、ファイルの「文字コード」とExcelが想定する文字コードの不一致にあります。

特にWindows環境では、日本語のCSVファイルが「Shift_JIS」で作成されることが多く、一方、国際標準である「UTF-8」も広く利用されています。

ExcelはCSVファイルを開く際に、自動的に文字コードを判別しようとしますが、この判別が常に正確とは限りません。特に「UTF-8 BOMなし」のファイルの場合、Excelが正しく文字コードを認識できず、文字化けが発生しやすくなります。

BOMとは「Byte Order Mark」の略で、ファイルの先頭に付加される数バイトの識別子のことです。このBOMが付加されていることで、Excelなどのアプリケーションは文字コードが「UTF-8」であることを確実に判別できます。BOMがないと、Excelは誤った文字コード(例えばShift_JIS)で読み込もうとし、結果として文字化けを引き起こすのです。

CSVファイルの文字化けを解消する「UTF-8 BOM付き」変換手順

CSVファイルの文字化けを解消するには、主に二つの方法があります。一つはファイルを「UTF-8 BOM付き」で保存し直す方法、もう一つはExcelのデータ取り込み機能で文字コードを明示的に指定する方法です。

方法1: メモ帳で文字コードを変換して保存し直す

この方法は、個別のCSVファイルの文字化けを確実に解消したい場合に有効です。Windows標準のメモ帳アプリを利用します。

  1. CSVファイルをメモ帳で開く
    文字化けしているCSVファイルを右クリックします。表示されるコンテキストメニューから「プログラムから開く」を選択し、「メモ帳」を選んでファイルを開きます。
  2. 「名前を付けて保存」を選択する
    メモ帳の画面上部にある「ファイル」メニューをクリックします。ドロップダウンリストから「名前を付けて保存」を選択します。
  3. 文字コードを「UTF-8」に設定する
    「名前を付けて保存」ダイアログボックスが開きます。画面下部にある「文字コード」のドロップダウンリストをクリックし、「UTF-8」を選択します。この「UTF-8」は自動的にBOM付きで保存されます。
  4. ファイルを保存する
    ファイル名はそのままで、または任意の新しい名前を付けて「保存」ボタンをクリックします。元のファイルを上書き保存しても問題ありません。
  5. Excelでファイルを開き直す
    保存し直したCSVファイルをExcelで開きます。文字化けが解消され、正しく表示されることを確認してください。

方法2: Excelのデータ取り込み機能で文字コードを指定して開く

この方法は、元のCSVファイルを変更せずに、Excel側で文字コードを指定して開きたい場合に適しています。Excel 2016以降のバージョンで利用できる機能です。

  1. Excelを起動する
    新しい空白のブックを開くか、既存のブックを開きます。
  2. 「データ」タブを選択する
    Excelのリボンメニューから「データ」タブをクリックします。
  3. 「テキストまたはCSVから」を選択する
    「データの取得と変換」グループ内にある「テキストまたはCSVから」をクリックします。
  4. CSVファイルを選択しインポートする
    インポートするCSVファイルを選択し、「インポート」ボタンをクリックします。
  5. 文字コードと区切り記号を指定する
    データのプレビューが表示されるウィンドウが開きます。「ファイルの原点」のドロップダウンリストから「65001: Unicode UTF-8」を選択します。これにより、文字化けが解消されるはずです。
  6. 区切り記号を設定する
    「区切り記号」のドロップダウンリストから「カンマ」を選択します。これにより、データが正しく列に分割されます。
  7. データを読み込む
    プレビューで文字化けが解消され、データが正しく表示されていることを確認します。「読み込み」ボタンをクリックして、Excelシートにデータをインポートします。

変換後も文字化けが続く場合の追加対処法

上記の変換手順を試しても文字化けが解消されない場合や、より効率的に処理したい場合には、いくつかの追加の対処法があります。

Excelのバージョンや設定による影響

古いバージョンのExcelでは、UTF-8 BOMなしのCSVファイルに対する対応が不十分な場合があります。また、Excelの内部設定が文字化けを引き起こすことも考えられます。

原因: Excel 2010や2013など、一部の古いExcelバージョンはUTF-8 BOMなしのファイルを正しく扱えないことがあります。また、Excelの「オプション」設定で、外部データファイルの文字セットが適切に設定されていない可能性もあります。

解決策:

  1. Excelの更新: Excelのバージョンが古い場合は、最新バージョンに更新することを検討してください。Windows Updateを通じてOffice製品も更新される場合があります。
  2. Excelのオプション設定の確認:
    1. Excelを開き、「ファイル」タブをクリックします。
    2. 左側のメニューから「オプション」を選択します。
    3. 「Excelのオプション」ダイアログボックスで、「データ」カテゴリを選択します。
    4. 「テキストファイル」セクションにある「外部データファイルの文字セット」を確認します。必要に応じて「Unicode UTF-8」を選択してください。

CSVファイル自体の内容に問題がある場合

CSVファイル内のデータ形式に問題があると、文字コード変換後も正しく表示されないことがあります。例えば、カンマ以外の区切り文字が使われていたり、データ内に意図しない改行が含まれていたりするケースです。

原因: CSVファイルは通常カンマで区切られますが、セミコロンやタブなど、他の区切り文字が使われている場合があります。また、セル内に改行が含まれると、Excelが列の終わりを誤って判断し、データがずれて表示されることがあります。

解決策:

  1. テキストエディタで内容を確認: CSVファイルをメモ帳などのテキストエディタで開き、データの内容を直接確認します。不自然な改行や、カンマ以外の区切り文字がないか確認してください。
  2. 区切り文字の変更: Excelのデータ取り込み機能を使用する際に、正しい区切り文字を指定します。例えば、セミコロンで区切られている場合は「区切り記号」を「セミコロン」に設定します。
  3. データ修正: 不適切な改行や特殊文字が含まれている場合は、テキストエディタで手動で修正するか、元のデータ生成元に修正を依頼します。

PowerShellで複数のCSVファイルを一括変換する

大量のCSVファイルをまとめて変換する必要がある場合、PowerShellスクリプトを利用すると効率的です。この方法では、指定したフォルダ内のすべてのCSVファイルを「UTF-8 BOM付き」に変換できます。

手順:

  1. PowerShellを起動する
    Windowsの検索ボックスに「PowerShell」と入力し、「Windows PowerShell」を右クリックして「管理者として実行」を選択します。
  2. 変換スクリプトを実行する
    以下のコマンドをPowerShellウィンドウにコピー&ペーストし、Enterキーを押して実行します。スクリプト内の「C:\Path\To\Your\CSV_Files」を、CSVファイルが保存されている実際のフォルダパスに置き換えてください。
$SourceFolder = "C:\Path\To\Your\CSV_Files"
Get-ChildItem -Path $SourceFolder -Filter "*.csv" | ForEach-Object {
    $FilePath = $_.FullName
    $Content = Get-Content -Path $FilePath -Raw
    Set-Content -Path $FilePath -Value $Content -Encoding UTF8
    Write-Host "$(Get-Date -Format 'HH:mm:ss') - '$($_.Name)' を UTF-8 BOM付きに変換しました。"
}
  1. 変換の確認
    スクリプトが完了したら、指定したフォルダ内のCSVファイルをExcelで開き、文字化けが解消されていることを確認します。

このスクリプトは、既存のCSVファイルを直接上書きしてUTF-8 BOM付きに変換します。重要なファイルの場合は、事前にバックアップを取ることを推奨します。

ADVERTISEMENT

UTF-8 BOMあり・BOMなしの比較

CSVファイルの文字化け問題で頻繁に登場する「BOM」について、その有無による違いを比較します。

項目 UTF-8 BOM付き UTF-8 BOMなし
特徴 ファイルの先頭にBOMと呼ばれる識別子が付加される。Excelなどのアプリケーションが文字コードを正しく判別しやすくなる BOMが付加されない。テキストエディタやWebアプリケーションで広く使われる
互換性 Windows環境のExcelで文字化けしにくい。一部のLinux系システムや特定のプログラミング言語でBOMが邪魔になる場合がある 多くのテキスト処理ツールやWebサービスとの相性が良い。Windows環境のExcelで文字化けしやすい
使用場面 Windows環境でExcelと連携する場合に推奨される。特にExcelでのデータ分析や報告書作成に有効 プログラミング、Web開発、Linux環境でのテキスト処理に推奨される。データの入出力やAPI連携で多く用いられる

まとめ

CSVファイルの文字化けは、文字コードの不一致が主な原因です。この問題は、業務におけるデータ処理の正確性や効率に大きく影響します。

この記事で解説した「メモ帳でのUTF-8 BOM付き変換」や「Excelのデータ取り込み機能」を活用することで、ほとんどの文字化け問題は解決できます。

さらに、PowerShellでの一括変換手順を利用すれば、複数のCSVファイルを効率的に処理し、日々の業務をスムーズに進めることが可能です。これらの手順を試して、CSVデータの文字化けを解消し、正確なデータ活用を実現しましょう。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。