VBAでファイルの文字コード判定を行う

VBA

VBAで文字コードの判定を行います。

何故かVBAに無い「文字コード判定」

Microsoft Excel では、[データ]→[テキスト ファイル]と選んでいって、ファイルを選択すると文字コードの判定を自動でしてくれます。

この判定がVBAから利用できれば便利なのに、VBAにはその命令がありません。

関数を追加する

そこで、文字コード(文字エンコード)を判定する関数を作成してみました。

VBAのエディタを開いたら、プロジェクト エクスプローラーで右クリック→[挿入]→[標準モジュール]として、以下を貼り付けてください。

判定方法については以下のサイトを参考にさせていただきました。

使い方

VBAの中から関数として呼び出します。

パラメータには検査したいファイル名をフルパスで入力します。

結果としては、以下の文字列が返ってきます。

返り値 文字コード
UTF-16 LE BOM Unicode (UTF-16 LE)(BOM付き)
UTF-16 BE BOM Unicode (UTF-16 BE)(BOM付き)
UTF-8 BOM UTF-8(BOM付き)
UTF-8 UTF-8(BOM無し)
Shift_JIS シフトJIS
空白 判定不能

手元にあるファイルで試したところ十分に判定してくれています。

英数字(ASCII文字)だけのテキストファイルの場合、UTF-8かANSI(シフトJIS)か判定できませんが、「UTF-8」で返すようになっています。

では、この辺で。(^-^)o

コメント

  1. 有意義な記事で助かります。
    掲載コードの52~63行目にかけて適切な改行がなされていないようです。
    単なるコピペでは動きませんです。

    • おぼれさん、コメント&ご指摘ありがとうございます。

      なかなかこの手の話題が見つからなくて、自分で記事にしたものなので活用していただけるとありがたいです。

      プログラムについて、修正しました。

タイトルとURLをコピーしました