Excel VBA Editorの挙動がおかしい時の対処方法

概要

最近はUiPath、Python、C#で業務の自動化を行うことが多いです。

久しぶりにExcel VBAでデータを整理するツールを作成しようとVBA Editorを起動したところ下記の2症状が発生しました。

  1. VBA Editor上で勝手にInsertモードになる
  2. VBA Editorでスペースキーを押してもスペースが入力できない

それぞれ色々試してみて問題が解決できました。

環境

  • Windows 10 Pro
  • Excel for Office 365

VBA Editor上で勝手にInsertモードになる

VBA Editorを操作していたところInsertキーを押してないのに勝手に上書きモードになってしまい、
入力がうまくできないことがありました。

そのときに試したのが以下の方法です。

Warning
  • レジストリを操作します。操作に関しましては自己責任でお願いします。
  • レジストリで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でスペースが入力できるようになりました。

https://stackoverflow.com/questions/51883734/vba-editor-of-excel-spacebar-not-working-at-end-of-the-line

関連ページ