Excel マクロがunicode文字で止まる
突如現れた、不可視の謎の文字
ある日、Excel VBAで、シート内の文字列を取得、加工してテキストファイルに出力するマクロが動かなくなった。
デバッグすると、なにやら怪しい文字が混入しているらしく。
イミディエイトウィンドウに出力してみると、見た目は『?』。
Asc関数でも63で、『?』だと言っている。
しかし、Chr(63)では該当セルから検知できず、除去もできず。。
正体はこれだった ⇒『ꜗ』
ワークシート関数『unicode』で、文字コードを調べたところ...
⇒ 8203
**『modifier letter dot vertical bar』**という名らしい。
どうしてこんなものが...?
(そのシートに入力していた人はもう異動していて、ご本人に確かめるすべはない...)
ともかくも、ChrW (8203) を使って、無事にVBAで検知、除去できた。
VBAでunicode文字を扱う方法まとめ
- 対象の文字コードを特定する(ワークシート関数『unicode』等を使う)
- ChrW関数で扱う(置換するなり除去するなり)