【Excel VBA】UTF-8のCSVファイルが文字化けする問題の解決法
WebシステムからダウンロードしたCSVファイルをExcelで開いたら、日本語の部分が全て意味不明な記号になってしまった…。そんな「文字化け」に、頭を悩ませた経験はありませんか?
これは、ファイルが「UTF-8」という世界標準の文字コードで書かれているのに対し、日本語版のExcelが、古い「Shift_JIS」というルールでファイルを開こうとして、文字の解釈に失敗しているのが原因です。
今回は、VBAマクロを使ってCSVファイルを読み込む際に、この文字コードを正しく指定し、文字化けを完全に防ぐための、非常に重要なテクニックを解説します。
この文字化け問題は、CSVファイルを開くためのWorkbooks.OpenTextメソッドに、「このファイルはUTF-8ですよ」と、はっきりと教えてあげることで解決します。
キーとなるパラメータ:Origin: Workbooks.OpenTextメソッドには、Originという、ファイルの「出自」や「源流」、すなわち文字コードを指定するための、専門の引数が用意されています。
UTF-8の指定方法: このOrigin引数に、UTF-8を表す特別な番号である**65001**を指定します。これにより、VBAはExcelに対して、「このCSVファイルは、UTF-8のルールで書かれているから、そのつもりで開いてください」と明確に指示を出すことができます。
その他の設定: OpenTextメソッドでは、同時に、区切り文字が「カンマ(Comma)」であることなども指定できます。これらの設定を組み合わせることで、様々な形式のテキストファイルを、正確にExcelシートへ展開できます。
手作業で開くと文字化けしてしまうファイルも、VBAから文字コードを指定して開くことで、常に正しく表示させることが可能になります。
私の運営サイトでは、このWorkbooks.OpenTextメソッドでOrigin:=65001と指定し、UTF-8で書かれたCSVファイルを文字化けさせずに読み込む、という具体的なVBAコードを分かりやすく解説しています。
▼詳しい解説とサンプルコードはこちら Excel VBAで文字コード(UTF-8など)を指定してCSVファイルを正しく読み込む方法
Webシステムとのデータ連携が一般化した現代において、UTF-8形式のデータを正しく扱うスキルは不可欠です。OpenTextメソッドによる文字コードの明示的な指定は、異なるシステム間でデータをやり取りする際の、信頼性を担保する基本となります。


コメント