Excel VBA Editorの挙動がおかしい時の対処方法
概要
最近はUiPath、Python、C#で業務の自動化を行うことが多いです。
久しぶりにExcel VBAでデータを整理するツールを作成しようとVBA Editorを起動したところ下記の2症状が発生しました。
- VBA Editor上で勝手にInsertモードになる
- VBA Editorでスペースキーを押してもスペースが入力できない
それぞれ色々試してみて問題が解決できました。
環境
- Windows 10 Pro
- Excel for Office 365
VBA Editor上で勝手にInsertモードになる
VBA Editorを操作していたところInsertキーを押してないのに勝手に上書きモードになってしまい、
入力がうまくできないことがありました。
そのときに試したのが以下の方法です。
- レジストリを操作します。操作に関しましては自己責任でお願いします。
- レジストリでInsertキーを無効にします。他のアプリケーションでもInsertキーが動かなくなるので注意してください。
Windows左下の検索欄にregeditと入力して、レジストリエディタを起動します。

ユーザーアカウント制御画面が表示されたら、「はい」をクリックします。
「コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout」を選択します。

右クリックして新規→バイナリ値を選択します。

追加したバイナリ値の名前をScancode Mapに変更します。

Scancode Mapを右クリックして修正を選択します。

下記の値を入力します。
100 00 00 00 00 00 00 00
202 00 00 00 00 00 52 E0
300 00 00 00
値 | 説明 |
---|---|
0x00000000 | Header: バージョン情報 すべて0でセット |
0x00000000 | Header: フラグ情報 すべて0でセット |
0x00000002 | 末尾のNull終端値を含むマッピング数(今回は2マッピング) |
0xE0520000 | Insertキーを無効化 (0xE052 –> 0x00). |
0x00000000 | Null終端値 |
バイナリ値の編集は下記を参考にしました。
https://learn.microsoft.com/en-us/windows-hardware/drivers/hid/keyboard-and-mouse-class-drivers#scan-code-mapper-for-keyboards
キーボードInsertキーのスキャンコードは下記を参考にしました。
http://hp.vector.co.jp/authors/VA003720/lpproj/others/kbdjpn.htm
ビッグエンディアンからリトルエンディアンの変換例はこちらの設定例が参考になります。
https://so-zou.jp/pc/keyboard/scancode-map.htm
レジストリエディタを閉じて、パソコンを再起動するとInsertキーが無効になります。
上記の方法でVBA Editorが勝手に上書きモードにならなくなりました。
https://superuser.com/questions/31794/windows-insert-key-anti-functionality-accidentally-triggers-how-to-stop-it-perm
VBA Editorでスペースキーを押してもスペースが入力できない
起動時はVBA Editor上でスペースキーが反応してくれるのですが
途中から急にスペースキーを押してもスペースが入力できなくなりました。
Excelの自動保存機能を停止したところ、VBA Editorでスペースが入力できるようになりました。

