ExcelでUTF-8のCSVファイルを開く

ExcelでUTF-8でエンコーディングされたCSVファイルを開く手順を紹介します。

概要・現象

UTF-8でエンコーディングされたCSVファイルをExcelで開くと、下図のように文字が化けてしまう場合があります。
Excelでは何も指定がない場合はファイルをShift-JISでエンコーディングされたファイルとして開く動作のため、文字化けが発生します。

ExcelでUTF-8のCSVファイルを開く:画像1

この記事では、UTF-8でエンコーディングされたCSVファイルをExcelに読み込む手順を紹介します。

方法1: BOMヘッダを付加する

CSVファイルの先頭にUTF-8でのエンコーディングを示すBOMヘッダが付加されている場合は、UTF-8でエンコーディングされたファイルとして開きます。
BOMヘッダを付加するにはいくつか方法がありますがメモ帳でUTF-8エンコーディングを指定して保存するとBOMヘッダを付加できるため、 メモ帳を用いたBOMヘッダの付加方法を紹介します。

メモ帳を起動します。
ExcelでUTF-8のCSVファイルを開く:画像2

UTF-8でエンコーディングされたCSVファイルを開きます。文字化けせずに開けます。
ExcelでUTF-8のCSVファイルを開く:画像3

[ファイル]メニューの[名前を付けて保存]メニューを選択します。
ExcelでUTF-8のCSVファイルを開く:画像4

ファイル保存ダイアログが表示されます。
ExcelでUTF-8のCSVファイルを開く:画像5

ダイアログ下部の[文字コード]のコンボボックスをクリックします。ドロップダウンメニューが表示されます。"UTF-8(BOM 付き)"を選択します。
ExcelでUTF-8のCSVファイルを開く:画像6

"UTF-8(BOM 付き)"でファイルを保存します。保存先は別のファイル名でも、同名のファイル名で上書きしても構いません。
ExcelでUTF-8のCSVファイルを開く:画像7

保存したCSVファイルをExcelで開きます。文字化けせずに開けました。
ExcelでUTF-8のCSVファイルを開く:画像8

方法2: データの取得を利用する

Excelを起動します。上部のツールリボンの[データ]タブをクリックして選択します。下図の画面に切り替わります。
ExcelでUTF-8のCSVファイルを開く:画像9

ツールリボンの[データの取得]ボタンをクリックします。下図のドロップダウンメニューが表示されます。 [ファイルから]のサブメニューの[テキストまたは CSV から]の項目をクリックします。
ExcelでUTF-8のCSVファイルを開く:画像10

またはツールリボンの[テキストまたはCSVから]のボタンをクリックします。
ExcelでUTF-8のCSVファイルを開く:画像11

データの取り込みダイアログが表示されます。読み込むCSVファイルを選択して開きます。
ExcelでUTF-8のCSVファイルを開く:画像12

下図のプレビューダイアログが表示されます。文字化けしていないことを確認します。問題がなければダイアログ右下の[読み込み]ボタンをクリックします。
ExcelでUTF-8のCSVファイルを開く:画像13

文字化けしている場合は、エンコーディングを明示的に指定します。エンコーディングのドロップダウンリストボックスをクリックし、 ドロップダウンメニューの "65001:Unicode (UTF-8)" の項目をクリックして選択します。
ExcelでUTF-8のCSVファイルを開く:画像14

CSVファイル取り込んで表示できました。
ExcelでUTF-8のCSVファイルを開く:画像15

方法3: Shift-JISに変換する

別の方法としてShift-JISに変換する方法もあります。

メモ帳でCSVファイルを開きます。[ファイル]メニューの[名前を付けて保存]メニューを選択します。ファイル保存ダイアログが表示されますので、ダイアログ下部の[文字コード]を "ANSI" に設定します。保存先は別のファイル名でも、同名のファイル名で上書きしても構いません。
ExcelでUTF-8のCSVファイルを開く:画像16

上記の手順でCSVファイルのエンコーディングをShift-JISに変換できます。Shift-JISに変換したCSVファイルをExcelで開くと文字化けせずにCSVファイルを表示できます。

注意
Shift-JISに変換するためUnicodeでしか表現できない文字は欠落する場合があるので注意してください。
("?"の文字に置き換わります)

A.W.S (Another World Story)

ExcelでUTF-8のCSVファイルを開く:画像17

夕暮れが深まり、研究室の窓はカーテン代わりの段ボールで半分だけ覆われていた。外は春の雨。 冷えた空気が入り込むたび、ラックに並んだサーバーのファンが低く唸った。 コンクリートの床に敷いた古いカーペットは、コーヒーの染みと半田ごての焦げ跡でまだら模様になっている。

早紀は実験装置から吸い上げたセンサーのログを CSV で吐き出し、さっきから Excel を連打していた。 ファイルを開くたびに現れるのは、謎のヒエログリフじみた文字列。セルの幅を広げても、書式を変えても、宇宙語は宇宙語のままだ。

彼女はキーボードに額を載せるようにして嘆いた。教授に提出する締切は二時間後。 隣では琢也が半壊した回転イスに横座りし、ペットボトル入りのほうじ茶を振っている。

琢也は状況を聞くと、ほうじ茶を机に置き、モニターの青白い光でほのかに照らされた早紀のファイル名を眺めた。 拡張子は .csv。エンコードは UTF-8。いつもの日本語崩壊案件。

彼はファイル名を F2 で .txt に書き換えた。それから Excel 本体を先に起動し、

データ タブ → テキスト/CSV から
を選び直にドラッグ。プレビューが現れると、左上の小さなプルダウンを 65001:Unicode(UTF-8) に合わせ、区切り文字をカンマで指定し、次へ、完了。 プログレスバーが跳ねるように走り、さっきまで暗号だった列に日本語が現れた。設備名、測定日時、電圧、電流――研究室で必要とされる、ただそれだけの情報が素直に整列している。

早紀の顔がぱっと明るくなり、ベンチの LED スタンドがそのまぶしさを拾ってまた反射した。

けれど琢也は首をかしげる。毎回名前を書き換えるのは面倒だ。そこで一計を案じ、メモ帳を開いて空白一文字も打たずに保存。エンコード欄で UTF-8 (BOM 付き) を選んでダミーの BOM を作り、 出来たファイルをコピーして CSV と重ね合わせる。拡張子はもう戻して構わない。――これで次からはダブルクリック一発で文字化けは起きない。

設定を終えた二人は Excel の列幅を自動調整し、フィルタをかけ、再計算を走らせた。 数式バーの上でカーソルが点滅し、研究室の時計が18時を告げる。外の雨は止み、かわりに蛙が鳴き始めている。

それでもまだ締切には余裕があり、早紀はグラフを彩り、琢也はマクロで凡ミスを消し、二人は無言のまま微笑んだ。

そこへドアがきい、と開く。教授がボトル入りスポーツドリンクを片手に現れる。

教授はモニターを覗き込み、整然と並んだ日本語を確認して満足げにうなずくと、不意に告げた。
「来月から研究室は Linux 専用サーバーで統合する。表計算はすべて Python と Pandas に置き換えだ。」
蛙の合唱だけが聞こえる研究室で、早紀と琢也は硬直したまま互いの顔を見る。 開き直ったように琢也がほうじ茶を一気に飲み干し、早紀は Excel のウインドウをそっと閉じる。
数分前まで命がけで救った UTF-8 CSV は、もう二度と Excel では開かれないかもしれなかった。だが二人は笑った。

おかげで次のゼミ発表は、UTF-8 問題より Pandas 入門という、はるかに面白いネタが手に入ったのだから。

AuthorPortraitAlt
著者
iPentecの企画・分析担当。口が悪いのでなるべく寡黙でありたいと思っている。が、ついついしゃべってしまい、毎回墓穴を掘っている。
作成日: 2014-02-21
改訂日: 2021-02-11
Copyright © 1995–2025 iPentec all rights reserverd.