UserFormとキーボード操作

Excel VBAのUserFormにもキーボード操作用のイベントハンドラは各種用意されています。
が、これがうまく動かないと困った人もいるのでは。
はい、私のことですけども。
Application.OnKeyを使っても無駄でした。

UserFormのキーボード操作イベントハンドラが実行されるには条件があって、

  • UserForm上にコントローラーがひとつもない
  • UserForm上のコントローラーがすべて選択不可になっている

のどちらかが必要っぽいです。
なんてこったい。
解決法ですが、「UserForm上の選択可能なすべてのコントローラーにキーボード操作イベントハンドラを実装する」以外にありませんかね?
もちろんイベントハンドラの処理は共通関数化するにしても、宣言するだけでエライ数になる場合もあるわけで…。
なんとかならないかなー…。

数字のKeyCodeには気をつけよう

キーボード操作イベントハンドラ引数のKeyCodeですが、数字キーはテンキーとキーボード上段で異なるので注意をしましょう。
テンキーの0は96、キーボード上段の0は48です。


他にもニッチなIT関連要素をまとめていますので、よければ一覧記事もご覧ください。

返信を残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)