導入
販売管理SaaSから出力したCSVをExcelで開いたら、顧客名が「譁ェ蠑丈シ夂、セ ・ア螳・・・イ」のような意味不明な文字列になっている。出力側はUTF-8で書き出していたのに、Excel側がShift_JISとして読み込んでしまった――こんな場面はありませんか。
これは出力ミスではなく、CSVの文字コードがファイル単位・運用単位で固定されていないことが原因です。本記事では、標準文字コードを1つに決めて、文字化けを構造的に防ぐ手順をまとめます。
この記事で解決すること
| 項目 | 内容 |
|---|---|
| 解決する課題 | 文字化けして取込できない |
| 主な原因 | 文字コードが統一されていない |
| 解決方法 | UTF-8やShift_JISなど利用ルールを決める |
| 対象業務 | CSV取込・販売管理・請求管理 |
| 対象人数 | 2〜30人 |
| 難易度 | ★☆☆☆☆ |
| 作業時間 | 20分 |
| 用意するもの | 対象のExcelファイル/編集権限/出力側との合意 |
| 効果 | 文字化けを防ぎやすい |
| 向かないケース | CSVを使わない表 |
「UTF-8 (BOM付き)」「Shift_JIS」のどちらかに決めて出力側に合意してもらうだけで、文字化けの大半が消えます。
なぜその管理表はうまくいかないのか
- 出力側がUTF-8で書き出し、Excel側がShift_JISで開いている(その逆も)
- 担当者ごとに「ExcelでCSVを開く」「Power Queryで取り込む」など方法が違う
- BOM付きとBOMなしのUTF-8が混在している
- 文字化けが起きるたびに手動で文字コードを変換している
- 特殊文字(旧字体、記号、機種依存文字)が混入してさらに化ける
担当者の作業手順ではなく、文字コードの標準がチームで決まっていないことが原因です。見直しは、標準文字コードを1つに決めて出力・取込の両側に共有するところから始めます。
完成イメージ
直す前 — 文字コードがその場任せ:
| 取込結果 | 文字化け状態 |
|---|---|
| 顧客名 | 譁ェ蠑丈シ夂、セ |
| 案件名 | 蝠・刀蠑剋ュ |
取込のたびに文字化けが起き、手動で変換している。
直した後 — 標準コードをUTF-8 BOM付きに統一:
| 取込結果 | 値 |
|---|---|
| 顧客名 | 株式会社山田商事 |
| 案件名 | 4月見積案件 |
すべてのCSVがUTF-8 BOM付きで揃い、Excelでもダブルクリックで正しく開ける。
改善手順
ステップ1. 標準文字コードを1つに決める
チームで使う標準文字コードを決めます。
操作: 別シート「文字コードルール」を作り、A列に項目、B列に標準値、C列に補足を記入する。
記入例:
| 項目 | 標準値 | 補足 |
|---|---|---|
| 標準文字コード | UTF-8(BOM付き) | Excelダブルクリックで開ける |
| 改行コード | CR+LF | Windows標準 |
| 区切り文字 | 半角カンマ | TSV不可 |
| 文字列の引用 | ダブルクオート | カンマや改行を含む場合のみ |
| 例外 | 古い基幹システム連携時のみShift_JIS可 | 個別判断 |
「UTF-8 BOM付き」は、ExcelでCSVをダブルクリックしたときに文字化けしない設定。Power Query経由ならBOMなしUTF-8でも問題ないが、運用簡素化のためBOM付きを推奨。
ステップ2. 出力側にルールを共有する
CSVを出力する側(SaaSや基幹システムの担当)に文字コードルールを共有します。
操作: 「CSV連携仕様書」のような文書を作成し、ステップ1のルールを記載する。出力側にメール/チャットで共有し、了承を得る。連携先システムが3つ以上ある場合は、システムごとに対応状況を記入したマトリクス表を作る。
記入例(システム別対応マトリクス):
| システム | 文字コード対応 | BOM対応 | 備考 |
|---|---|---|---|
| 販売SaaS_v3 | UTF-8選択可 | BOM付き選択可 | 設定済み |
| 経理システム | Shift_JIS固定 | — | Power Queryで変換 |
| 在庫管理DB | UTF-8選択可 | BOMなし | Power QueryでBOM追加 |
ステップ3. 取込時の文字コード指定を固定する
Excel側の取込手順で文字コードを毎回固定指定します。
操作: 「データ」→「データの取得と変換」→「テキスト/CSV」→ファイル選択時に「ファイル オリジン」を「65001: Unicode (UTF-8)」に固定する。Power Queryの取込クエリを保存しておくと、次回も同じ設定で取り込める。
記入例:
| 取込方法 | 設定 |
|---|---|
| ダブルクリックで開く | UTF-8 BOM付きなら自動認識 |
| Power Query取込 | 「ファイル オリジン」を65001で固定 |
| マクロ取込 | OpenTextメソッドで Origin:=65001 を指定 |
✗悪い例: ファイルを開くたびに文字コードを毎回手動指定 → うっかり間違える ◎良い例: Power Queryクエリ保存で取込手順そのものを固定化
ステップ4. 文字化けが見つかったら出力側に差し戻す
文字化けが取込後に発見されたときの対応を運用ルールにします。
操作: 別シート「文字化け対応フロー」を作り、A列に状況、B列に対応を記入する。
記入例:
| 状況 | 対応 |
|---|---|
| 全体が文字化け | 出力側に文字コードを確認し、再出力依頼 |
| 一部の文字だけ化ける(例:「髙」「鄭」など) | 機種依存文字の混入。出力側にデータ確認依頼 |
| 列名だけ化ける | ヘッダー行のみの異常。Power Queryで列名を上書き |
| 半角カンマが値に混入 | ダブルクオート引用なしのCSV。出力側に修正依頼 |
ステップ5. 例外データの扱いを決めておく
旧字体・絵文字・機種依存文字など、UTF-8でも扱いに注意が必要なデータの扱いを決めます。
操作: 文字コードルールシートの末尾に「例外文字の扱い」セクションを追加。NG文字リストと代替表記を書く。
記入例:
| NG文字 | 代替表記 | 理由 |
|---|---|---|
| 機種依存文字(①②③) | (1)(2)(3) | 機種依存で文字化け危険 |
| 環境依存文字(髙、鄭) | 高、鄭(許容) | UTF-8では化けないが、印刷側で化ける可能性 |
| 絵文字 | 文字(笑、注意) | CSV連携で多くのシステムが非対応 |
実務での注意点
- CSVを使わない表(個人作業、印刷専用台帳など)には文字コードルールは不要です。
- UTF-8 BOM付きは ExcelダブルクリックではOKですが、一部のLinux環境では先頭にゴミ文字として残ります。連携先の環境を確認します。
- Shift_JISは「①」「㈱」などの機種依存文字や、海外文字(中国語簡体字等)を扱えません。海外データを扱う業務では必ずUTF-8を選びます。
- Power Queryで一度クエリを保存すると、ファイルを開くたびに自動で同じ設定で取り込まれます。手動再設定の手間がなくなります。
- 文字化け対応の連絡テンプレ(出力側への再出力依頼文)を用意しておくと、対応が速くなります。
まとめ
CSVが文字化けする原因は、文字コードの標準がチームで決まっていないことです。標準文字コード(UTF-8 BOM付き推奨)を決めて出力側と合意し、取込時の文字コード指定を固定化すれば、文字化けの大半が構造的に防げます。
次にやることは、現在使っているCSVが UTF-8 か Shift_JIS かを確認することです。混在している場合は、チームで標準を決めて出力側に依頼するところから始めます。あわせて、取込元の記録は取込元・取得日・担当者を記録する手順、列ズレ対策はCSVテンプレートの列順を固定する手順も参考になります。

