Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1598 / 13644 ツリー ←次へ | 前へ→

【73220】ショートカットキーを割り当てる VBA勉強中 12/12/2(日) 12:36 質問[未読]
【73221】Re:ショートカットキーを割り当てる Abyss 12/12/2(日) 17:06 回答[未読]
【73224】Re:ショートカットキーを割り当てる VBA勉強中 12/12/2(日) 19:10 回答[未読]
【73226】Re:ショートカットキーを割り当てる VBA勉強中 12/12/3(月) 22:37 お礼[未読]

【73220】ショートカットキーを割り当てる
質問  VBA勉強中  - 12/12/2(日) 12:36 -

引用なし
パスワード
   VBA初心者です、下記ご教授頂きたいです。

アクティブなセルのある行の「BF列」にカーソルを飛ばすコードを「OnKey1」として以下のように書きました。

Sub OnKey1()
  Range("BF" & ActiveCell.Row).Select
End Sub

このマクロにショートカットキーを割り当てたいのですが、キーは
「Ctrl押しながらテンキーの1を押下」
で動くようにしたいです。
そこでWorkbook_Openを以下のように記述しました。

Private Sub Workbook_Open()
  Application.OnKey "^{97}", "ThisWorkbook.OnKey1"
End Sub

すべてThisWorkbookにコード記述しました。

動作させてみるとアクティブセルがBF列に飛ばず、データの何も入っていない最終行の最終列あたり?に飛んでしまいます。

ちなみにテンキーではなく「Ctrl+q」でテストしてみると何故かうまく動作します。
Application.OnKey "^{97}", "ThisWorkbook.OnKey1"
の "^{97}"部分を "^q"にしてみるとBF列に飛びました。

どう修正すれば意図する動作をしてくれるか、ご教授いただきたいです。
よろしくお願いいたします。

【73221】Re:ショートカットキーを割り当てる
回答  Abyss  - 12/12/2(日) 17:06 -

引用なし
パスワード
   こんにちは。

NumLockが有効になってるのかまず確認してください。
ランプは点灯状態ですか?

【73224】Re:ショートカットキーを割り当てる
回答  VBA勉強中  - 12/12/2(日) 19:10 -

引用なし
パスワード
   >NumLockが有効になってるのかまず確認してください。
>ランプは点灯状態ですか?

はい、確認しました。NumLockのランプは点灯状態です。


ちなみに、
Application.OnKey "^{q}", "ThisWorkbook.OnKey1"
はうまく動作すると書き込みましたが、
Application.OnKey "^{p}", "ThisWorkbook.OnKey1"
これでは印刷のダイアログボックスが出てきます。
通常の「Ctrl+p」の動作ですね。


現在ノートPCにテンキー外付け状態で作業中ですが、
テンキー併設のキーボード(デスクトップPC)ならうまく動作してくれるのでしょうか。
もしそうなら明日デスクトップPCで確認してみようと思います。

引き続きよろしくお願いします。

【73226】Re:ショートカットキーを割り当てる
お礼  VBA勉強中  - 12/12/3(月) 22:37 -

引用なし
パスワード
   Abyss様

昨日はご回答ありがとうございます。
本日デスクトップPCで動作確認したところ、そのままのコードで
上手く動作しましたので取り急ぎご報告致します。

ノートPCで上手く動作しないのは、USB外付けテンキーが原因かもしれません。
外付けテンキーのメーカーサイト等調べてみようと思います。

まさか外付けテンキーが原因かも?とは疑いもせず…
コードに間違いはなかったとはいえ、
こちらに投稿してしまい、お手数をお掛けし申し訳なく思っております。
今後は数台のマシンで動作確認してから投稿します。

Abyss様、本当にありがとうございました。

1598 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free