読者です 読者をやめる 読者になる 読者になる

Excel VBAの検索で入力した文字列が文字化けする

Microsoft Office Excel 2013 通常版 [プロダクトキーのみ] [パッケージ] [Windows版](PC2台/1ライセンス)

はじめに

業務でExcel VBAを使っているんですが、性能改善のためコード解析することになりました。

 

そのExcel VBAで突然検索ができなくなるという謎の現象が発生!

 

不可解な現象にはやっぱり「アレ」が効くよ、というのが今回のお話。

 

結論

以下のレジストリを設定する。(Excel 2007の場合)

キー名 : HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options
名前:QFE_17407
種類:DWORD
データ: 1

 

経緯

Excel VBAで文字列検索しようとしたところ、なぜか入力した文字が化ける!

入力時点では正しい文字なのに、確定した瞬間に全く違う文字に変わってしまう!

例えば、検索文字が「検索」ならば「訣」、「処理」ならば「女」になってしまう!

 

正直今までに見たこともない現象であり、解決は難しいかと思われましたが、調べてみると、Microsoftのサポート情報に解決法がありました。

Visual Basic エディタの検索ダイアログで文字が正常に表示されない

 

Excelのバージョンによってレジストリの設定値が若干異なるようですね。

ちなみにAccessでも同様の現象が発生するようです。

 

というわけで、この謎の現象も無事解決できました。めでたしめでたし。

 

まとめ

解決はしたものの、なぜ発生したのかは結局分からずじまいでした。

 

ただ、ランチャーソフトなどをインストールすると発生することがあるようですね。

ExcelVBAの検索の文字列入力の際の変換文字化けの改善法- オフィス系ソフト | 教えて!goo

 

でも、そんなの入れた覚えないんですけどね。

直ったから良いですが、突然発生するとかなり面喰いますね。