「selectionchangerで標準マクロ実行」
といった検索キーワードでアクセスがありました。
Excel VBAの、Worksheet_SelectionChangeイベントプロシージャから、
標準モジュール内に作成したSubプロシージャを実行するには、どのような書き方をすればいいのかを調べていらしたのでしょう。
標準モジュールのSubプロシージャ
まずは、標準モジュールに、以下のSubプロシージャを作成してください。
MsgBox "呼ばれました!"
End Sub
「呼ばれました!」とメッセージを表示するだけのプロシージャです。
Worksheet_SelectionChangeイベントプロシージャ
Worksheet_SelectionChangeイベントプロシージャは、以下のようなコードにしてください。
Call Worksheet_SelectionChangeから呼ばれるマクロ
End Sub
ポイントはCallキーワードの後ろに、先に標準モジュールに作成したプロシージャの名前「Worksheet_SelectionChangeから呼ばれるマクロ」を、そのまま正しく入力することです。
ここで入力するプロシージャ名を1文字でも間違えると、以下のようなコンパイルエラーが発生するようになってしまいます。
コンパイル エラー: Sub または Function が定義されていません。
標準モジュールとイベントプロシージャを作成した状態
「Sheet1」シートにWorksheet_SelectionChangeイベントプロシージャを作成し、「Module1」標準モジュールにWorksheet_SelectionChangeから呼ばれるマクロを作成して、プロジェクトエクスプローラ・Sheet1のコード・Module1のコードが見える状態にすると、下図のようになります。
標準モジュールのSubプロシージャと、Worksheet_SelectionChangeイベントプロシージャを正しく作成できると、Worksheet_SelectionChangeイベントプロシージャを作成したワークシート上で選択セルを変更するたびに、下図のような
「呼ばれました!」
メッセージボックスが表示されます。
Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » Worksheet_SelectionChangeで標準モジュールのマクロを実行するには