教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA シート操作】シートのイベントプロシージャを作成するにはどうすればいいの?教えて!

f:id:m_kbou:20200520111320p:plain

VBAでは操作をきっかけとして自動的に実行されるプロシージャの事を「イベントプロシージャ」と言います。自動実行のきっかけとなる操作の事を「イベント」と呼び、「イベント」はブックやワークシート、ユーザーフォーム等のオブジェクトに対して発生します。この「イベント」を利用して特定の処理を実行するシートに対するイベントプロシージャの作成方法を紹介します。

 

イベントプロシージャの作成方法

(1)VBE(VBA記述画面)を開きます。
※画面の開き方はこちらの手順を参考にして下さい。

f:id:m_kbou:20200520111338p:plain

(2)シートオブジェクトをダブルクリックします。

f:id:m_kbou:20200520111400p:plain

(3)オブジェクトボックスの▼ボタンをクリックします。

f:id:m_kbou:20200520111416p:plain

(4)プルダウン一覧の中から「WorkSheet」を選択します。

f:id:m_kbou:20200520111431p:plain

※この時点で「Worksheet_SelectionChange」イベントプロシージャが表示されます。<(これは自動的に作成される仕組みとなっている様です。)

f:id:m_kbou:20200520111501p:plain

(5)プロシージャボックスの▼ボタンをクリックします。

f:id:m_kbou:20200520111602p:plain

(6)プルダウン一覧の中からイベントプロシージャを選択します。

f:id:m_kbou:20200520111616p:plain

※イベントプロシージャに含まれるイベント一覧は以下の通りです。

イベントの種類 発生するタイミング
Activate シートがアクティブになったとき
Deactivate シートがアクティブでなくなったとき
SelectionChange シートで選択範囲が変更されたとき
BeforeDoubleClick シートがダブルクリックされたとき
BeforeRightClick シートが右クリックされたとき
Calculate シートが再計算されたとき
Change シートが変更されたとき

(7)今回は参考例として「Activate」を選択してみます。

f:id:m_kbou:20200520111647p:plain

(8)「Worksheet_Activate」イベントプロシージャが表示されます。

f:id:m_kbou:20200520111738p:plain

イベントプロシージャの作成方法についての説明は以上です。

 

おわりに

今回はシートのイベントプロシージャの作成方法について説明しました。オブジェクトボックスでオブジェクトを選択すると、そのオブジェクト既定の「Worksheet_SelectionChange」イントプロシージャが自動的に作成されます。不要な場合は削除して下さい。