はじめに
AccessでCSVファイルをインポートすると、
-
日本語が「???」になる
-
文字が崩れる
-
正しく表示されない
といった 文字化けトラブル がよく発生します。
本記事では、
AccessでCSVが文字化けする原因と、その完全な対処法 を
初心者向けに分かりやすく解説します。
AccessでCSVが文字化けする主な原因
原因①:文字コードの違い
CSVファイルには主に以下の文字コードがあります。
| 種類 | 内容 |
|---|---|
| Shift-JIS | 日本のExcel標準 |
| UTF-8 | Web・他システムで多い |
| UTF-8(BOM付き) | Excelで保存したUTF-8 |
対策①:ExcelでShift-JIS保存に変換
最も簡単な方法です。
-
CSVをExcelで開く
-
「名前を付けて保存」
-
「CSV(コンマ区切り)」を選択
-
Shift-JIS形式で保存
対策②:schema.iniを使う方法(最重要)
schema.iniとは?
AccessにCSVの構造と文字コードを教える設定ファイルです。
schema.ini 記述例
[sample.csv]
ColNameHeader=True
Format=Delimited(,)
CharacterSet=932
設置場所
CSVと同じフォルダに保存します。
UTF-8 CSVを読み込む場合
CharacterSet=65001
と指定します。
[sample.csv]
ColNameHeader=True
Format=Delimited(,)
CharacterSet=65001
VBAでCSVを安全に読み込む例
DoCmd.TransferText acImportDelim, , “取込テーブル”, “C:\data\sample.csv”, True
schema.iniがあることで文字化けを防げます。
よくある失敗例
❌ schema.iniのファイル名が違う
[sample.csv] ← CSV名と完全一致が必要
❌ フォルダが違う
CSVと同じフォルダに置く必要あり。
区切り文字が「;」の場合
Format=Delimited(;)
文字化け+Nullになる場合
Access側のテーブル型が原因の場合もあります。
| フィールド型 | 推奨 |
|---|---|
| 短いテキスト | ◎ |
| 数値型 | × |
| 日付型 | 注意 |
トラブル時のチェックリスト
-
CSVはUTF-8かShift-JISか?
-
schema.iniは存在するか?
-
CSV名と一致しているか?
-
フィールド型は短いテキストか?
-
フォルダパスは正しいか?
よくある質問
Q. BOM付きUTF-8は?
schema.iniで65001指定すれば対応可能です。
Q. Excelで保存すると直りますか?
多くの場合、Shift-JISで保存し直せば解決します。
まとめ
AccessのCSV文字化けは、
-
文字コードの違い
-
schema.ini未設定
が原因のほとんどです。
schema.iniを正しく設定すれば、
99%の文字化けは解消できます。
内部リンク