Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » Worksheet_SelectionChangeで標準モジュールのマクロを実行するには

Worksheet_SelectionChangeで標準モジュールのマクロを実行するには

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2405(ビルド17602.20000クイック実行)ベータチャネル

「selectionchangerで標準マクロ実行」
といった検索キーワードでアクセスがありました。

Excel VBAの、Worksheet_SelectionChangeイベントプロシージャから、

標準モジュール内に作成したSubプロシージャを実行するには、どのような書き方をすればいいのかを調べていらしたのでしょう。

[スポンサードリンク]

標準モジュールのSubプロシージャ

まずは、標準モジュールに、以下のSubプロシージャを作成してください。

Sub Worksheet_SelectionChangeから呼ばれるマクロ()
 MsgBox "呼ばれました!"
End Sub

「呼ばれました!」とメッセージを表示するだけのプロシージャです。

Worksheet_SelectionChangeイベントプロシージャ

Worksheet_SelectionChangeイベントプロシージャは、以下のようなコードにしてください。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 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で標準モジュールのマクロを実行するには

「イベントプロシージャ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.