• 締切済み

ExcelのVBAマクロOnKeyでテンキーをトラップしたい

ExcelVBAのOnkeyメソッドで数字キーの入力をトラップしたいのですが、 Application.OnKey "1", "KeyEvent1"  のように指定した場合数字キーはトラップできるのですがテンキーの数字キーがトラップできません。 どなたかテンキーのトラップ方法をご存知の方教えてください。

みんなの回答

回答No.3

テンキーはkeycodeで指定します。 Application.OnKey "{96}", "KeyEvent1"  これでテンキーの0が押されたときです。 以下、 テンキーの1は97 ・ ・ ・ テンキーの9は105です。

  • vaguely
  • ベストアンサー率66% (2/3)
回答No.2

お役に立てず申し訳ないです。 やってみましたが、確かにできませんねぇ。(^_^;) OnKeyにこだわらずに他の処理方法にするのはダメなの? まぁ、処理速度とかには影響するでしょうけど。。。

  • vaguely
  • ベストアンサー率66% (2/3)
回答No.1

こう言うのはあんまり使わないんで違ってたらごめんなさい。 テンキーの数字に割り当てられてるコードは vbKeyNumpad0 とかですけど、 これを使えばいいのでは?詳しくは、Visual Basicリファレンスの「キー コードの定数」を参照してください。

mimura
質問者

補足

vaguely さんありがとうございます。 残念ですが、すでにvbKeyNumpad0実験済です。キーをキーコードでなく、""の文字列で指定しなければエラーになるのでchr(vbKeyNumpad0)も実験済です。