こんにちは、わたあめです。ExcelでVBAマクロを作成する時、開発タブからMicrosfoft Visual Basic for Applicationを起動して利用しますよね。
今回、コードの中でコメント文を検索をしようとしたところ…
という現象にあたりましたので、対処法と解決法をまとめていきます。それでは、行ってみましょう!
事象詳細:日本語を変換すると変な日本語になる
Microsfoft Visual Basic for Applicationを使って、VBA編集。コード内のコメント文(日本語)を検索しようと、[編集]>[検索]から検索ボックスを表示し検索ワードを入したところ、変換すると変な日本語に置き換わる現象が起こりました。
例えば、検索ボックスで「あいうえお」と打ち、変換してみると、「bbお」という、変な変換になってしまうのです。ちなみに、英語入力は問題なく入力でき、日本語の入力後の変換のみがおかしくなります。
一時的な対処方法と、根本的な解決方法を紹介していきますね。
対処法1:入力した文字を貼り付けする
メモ帳やExcelのセルに正常に文字を入力できる場所で文字を入力し、貼り付ける方法です。変換が上手くできないことが問題なので、変換後の文字を貼り付けてしまえば、指定した文字を使って検索できます。
対処法2:ひと文字ずつ変換する
文字をひと文字ずつ変換するという方法もあります。
たとえば、「あいうえお」と検索ワードを打ち込みたいのならば、「あ」と打ってEnter,「い」と打ってEnter…という具合に一文字ずつ入力していきます。
また、変換が発生する漢字の場合。「森林」を変換したいのならば、「もり」と入力して「森」に変換、「はやし」と打って「林」に変換という風に打てば入力可能でした!
根本的解決法:レジストリ値を設定する
根本的解決方法としては、レジストリ値を設定することです。マイクロソフト社にもこのようなトピックスがありました。
Excel2003~Excel2010までのレジストリの設定方法が掲載されています。今回は、Microsoft Office Excel 2016の値を設定して行こうと思います。
レジストリ設定手順
- (念のため)Excelを終了しておく。
- Windowsボタン>[Windows管理ツール]>[レジストリ エディター]をクリック
- [HKEY_CURRENT_USER]>[Software]>[Microsoft]>[Office]>[16.0]>[Excel]>[Options]の順にフォルダを開いていく
- [編集]>[新規]>[DQORD(32ビット)値]
- 「新しい値 #1」を「QFE_17407」に変更する(右クリック>名前の変更)
- ダブルクリックして、[値のデータ]を"1"に変更する
これでレジストリの編集手順は完了です。Excelを起動、Microsfoft Visual Basic for Applicationを起動して、検索ボックスでの日本語入力の動作を確認してみてください。
さいごに
レジストリの編集は、よく理解せずに違う場所に違う値を設定してしまうと結構危険な設定なので、もし不慣れだと思う場合は、対処法1,2のテキストを貼り付けたり1文字ずつ入力するという方法で良いかと思います。
私の場合は、VBAの作成頻度が多い事、その中で検索ボックスを活用している事も多いので、今回思い切ってレジストリ値の追加に踏み切りました!
それでは、また次の記事で会いましょう!