ワークシートがアクティブになった時にマクロを自動実行します。
アクティブとは他のシートから該当のシートが前面に移った場合のことをいいます。
構文は、Worksheet.OnSheetActivateプロパティを使います。
シートがアクティブになった時にマクロを自動実行する
VBA入力画面
入力したコードです。
Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Sub シートがアクティブになった時に自動実行マクロ()
Worksheets("Sheet2").OnSheetActivate = "自動実行マクロ"
End Sub
Sub 自動実行マクロ()
Range("B4") = ""
Range("B3") = "2秒後にメッセージを表示します。"
Sleep (2000)
Range("B3") = ""
Range("B4") = "自動実行マクロで入力しました。"
End Sub
プログラムの説明
Windows APIの宣言Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Subプロシージャの宣言
Sub シートがアクティブになった時に自動実行マクロ()
OnSheetActivateubプロパティの設定
Worksheets("Sheet2").OnSheetActivate = "自動実行マクロ"
プロシージャの終了
End Sub
Subプロシージャの宣言
Sub 自動実行マクロ()
B4セルをクリア
Range("B4") = ""
B3セルに入力
Range("B3") = "2秒後にメッセージを表示します。"
2秒待ち
Sleep (2000)
B3セルをクリア
Range("B3") = ""
B4セルに入力
Range("B4") = "自動実行マクロで入力しました。"
プロシージャの終了
End Sub
シートがアクティブになった時に自動実行マクロの実行画面
ワークブックのシートがアクティブになった時に自動実行マクロを実行します。
Sheet1からSheet2に移すと、B3セルに「2秒後にメッセージを表示します。」と表示されます。
2秒経過すると、B4セルに「自動実行マクロで入力しました。」と表示されます。
Excelマクロのサンプルファイル:
フリーダウンロード
Copyright (C) excel.usefulhp.com All rights reserved.