【Excel VBA】シートがアクティブになる度にコードを実行する

Excel VBA講座 開講中!

今回は、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

だけでは参照先の兼ね合いなどで上手く実行、計算されない場合などに便利です。

タイトルとURLをコピーしました