Excel VBA質問箱 IV

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

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


1733 / 13645 ツリー ←次へ | 前へ→

【72305】ユーザーフォーム上でのショートカットキー制御 54 12/7/11(水) 0:26 質問[未読]
【72306】Re:ユーザーフォーム上でのショートカット... とおりすぎ 12/7/11(水) 0:52 回答[未読]
【72307】Re:ユーザーフォーム上でのショートカット... 54 12/7/11(水) 8:00 お礼[未読]

【72305】ユーザーフォーム上でのショートカットキ...
質問  54  - 12/7/11(水) 0:26 -

引用なし
パスワード
   お世話になります。

ユーザーフォームをモードレスで表示し、別BOOKをいろいろ編集するマクロを作っています。
その中で、ショートカットキーで動作するコードを標準モジュールに作成しているのですが、
当然ながら

当該マクロが記載されたBOOKが開いている間は、作成したショートカットキー動作のマクロが常時有効になっています。

編集作業上いろいろ不都合もあり、
ユーザーフォームにマクロショートカットキー有効/無効のチェックボックスを配置し制御したい、

と考え、下記のコードを追加してみました。

標準モジュール
module20に記述
************************************
 'Sub リンクペースト連続()
 ' On Error GoTo errMSG
 ' ActiveSheet.Paste Link:=True
 ' Exit Sub
 ' errMSG:
 '  MsgBox "リンク元を選択して下さい。"
 'End Sub
************************************

ユーザーフォーム
************************************
 'Private Sub Chb1_Click()
 ''ショートカットキーCtrl+x
 ' If Chb1 = True Then
 '  Application.OnKey "^x", "module20"
 ' Else
 '  Application.OnKey "^x", ""
 ' End If
 'End Sub
*************************************

実行したところ、ウォッチウインドウにて

ウォッチ式が不正です。 Empty

となってしまいます。
どこが間違っているのでしょうか?
解決策が有ればヒントをお教え下さい。

上記コードの場合の操作手順としては
 1.Chb1にチェックを入れ
 2.コピーするセルを選択し
 3.ペーストするセルを選択、Ctrl+xでリンク貼り付け
としたいのです。

Excel2007を使っています。
当方、初心者とお考えください。


よろしくお願いします。

【72306】Re:ユーザーフォーム上でのショートカッ...
回答  とおりすぎ  - 12/7/11(水) 0:52 -

引用なし
パスワード
   OnKeyメソッドの第2引数はモジュール名でなく、プロシージャ名では?

【72307】Re:ユーザーフォーム上でのショートカッ...
お礼  54  - 12/7/11(水) 8:00 -

引用なし
パスワード
   ▼とおりすぎ さん:
>OnKeyメソッドの第2引数はモジュール名でなく、プロシージャ名では?

おっしゃる通りでした。
動作確認いたしました。
ありがとうございます。

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