[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別ブックで作成したマクロのシュートカットを優先させたくない』(のっぽ)
a、b 2つのブックにマクロを作成して同じショートカットキーを割り当てた場合、両方のブックを開いた状態でショートカットキーを使用するとどちらのブックを使用している場合でもショートカットで最初に開いたブックのマクロが実行されてしまいます。
これを、
aのブックを使用している場合はaのマクロ実行
bのブックを使用している場合はbのマクロ実行
とする方法はないでしょか?
具体的には、例えば以下をそれぞれ作成し、「Cntl+m」でショートカットを作成ししておきます。
a.xlsm、b.xlsmの順番でブックを開き、b.xlsmを使用している状態で「Cntl+m」としても
【Aのマクロ実行】というメッセージボックスが立ち上がります。
これを【Bのマクロ実行】というメッセージボックスが立ち上がるようにできないでしょうか?
よろしくお願いします。
a.xlsmで作成したマクロ
Sub MacroA()
MsgBox "Aのマクロ実行" End Sub
b.xlsmで作成したマクロ
Sub MacroB()
MsgBox "Bのマクロ実行" End Sub
< 使用 Excel:Excel2013、使用 OS:Windows10 >
OnKeyメソッドだろうか? Application.MacroOptionsだろうか? (カリーニン) 2017/09/18(月) 19:09
OnKeyメソッドなら、↓のようにアクティブブックのマクロを実行させることができますけど、 OnKeyメソッドではだめなのでしょうか?
↓は標準モジュールのtestというマクロをCtrl+yで呼び出します。 全てのブックで同じマクロ名、同じショートカットキーでもいけます。
'ThisWorkbookモジュール
Private Sub Workbook_Activate() Application.OnKey "^y", "test" 'Ctrl+y End Sub
Private Sub Workbook_Deactivate() Application.OnKey "^y" End Sub
Private Sub Workbook_Open() Application.OnKey "^y", "test" 'Ctrl+y End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.OnKey "^y" End Sub (カリーニン) 2017/09/18(月) 20:52
(のっぽ) 2017/09/18(月) 22:39
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.