今回は、Excel VBAでシートがアクティブになる度にコードを実行する方法についてご紹介します。
シートがアクティブになる度にコードを実行する方法
まず最初に、下記のように、「Sheet1」と「Sheet2」を用意します。
次に、VBEでSheet1をクリックしてコードを入力する画面を表示し、コード入力画面上部にあるプルダウンから、「Worksheet」と「Activate」を選択します。
すると、コード入力画面に
Private Sub Worksheet_Activate() End Sub |
というコードが自動的に入力されます。
ちなみにここまでの過程で他のコードが入力されてしまう事がありますが、今回は削除していただいて問題ありません。
次に、シートがアクティブになる度に実行したいコードを入力しますが、今回は適当に下記のようにしてみます。
Private Sub Worksheet_Activate() MsgBox “会員登録が完了しました!” End Sub |
これで、「Sheet1」をクリックして「Sheet1」がアクティブになる度に、
会員登録が完了しました!
というメッセージボックスが表示されます。
これはちょっと悪趣味な例ですが(笑)、例えばここに自動再計算のコードを入力すると、シートがアクティブになる度に自動再計算されるため、例えばユーザー定義関数の自動再計算のコードである、
Application.Volatile
だけでは参照先の兼ね合いなどで上手く実行、計算されない場合などに便利です。