今回は、シートがアクティブになった時に処理を処理を実行する方法をご紹介します。
併せて、シートのアクティブ状態が解除された場合に処理を実行する方法も解説しますので、是非最後までお付き合いください。
- シートがアクティブになった時に処理を処理を実行する方法が分かります。
- シートのアクティブ状態が解除された場合に処理を実行する方法が分かります。
- イベントを使用するための手順を画像付きで解説します。
前提
関連イベント
# | イベント | 説明 |
---|---|---|
1 | Workbook_SheetActivate | ブック内のシートがActiveになった場合に処理を実行する |
2 | Workbook_SheetDeactivate | ブック内のシートのActive状態が解除された場合に処理を実行する |
3 | Worksheet_Activate | 特定のシートがActiveになった場合に処理を実行する |
4 | Worksheet_Deactivate | 特定のシートのActive状態が解除された場合に処理を実行する |
基本情報
Workbook_SheetActivateイベント
ブック内のシートがActiveになった場合に処理を実行する場合は、Workbook_SheetActivateイベント(以下「SheetActivateイベント」という)を使用します。
SheetActivateイベントは、ThisWorkbookモジュールに記載します。
構文
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
…(ソースコードを入力)
End Sub
Workbook_SheetDeactivateイベント
ブック内のシートのActive状態が解除された場合に処理を実行する場合は、Workbook_SheetDeactivateイベント(以下「SheetDeactivateイベント」という)を使用します。
SheetDeactivateイベントは、ThisWorkbookモジュールに記載します。
構文
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
…(ソースコードを入力)
End Sub
Worksheet_Activateイベント
特定のシートがActiveになった場合に処理を実行する場合は、Worksheet_Activateイベント(以下「Activateイベント」という)を使用します。
Activateイベントは、Worksheetモジュールに記載します。
構文
Private Sub Worksheet_Activate()
…(ソースコードを入力)
End Sub
Worksheet_Deactivateイベント
特定のシートがActiveになった場合に処理を実行する場合は、Worksheet_Deactivateイベント(以下「Deactivateイベント」という)を使用します。
Deactivateイベントは、Worksheetモジュールに記載します。
構文
Private Sub Worksheet_Deactivate()
…(ソースコードを入力)
End Sub
イベントの記述方法
Workbookイベント
VBEより、ThisWorkbookモジュールを選択後、プルダウンリストから指定のイベントを指定します。
その後、コード欄に自動でイベントが記載されることを確認します。
Worksheetイベント
VBEより、Worksheetモジュールを選択後、プルダウンリストから指定のイベントを指定します。
その後、コード欄に自動でイベントが記載されることを確認します。
サンプルコード
ブック内のシートがActiveになった場合に処理を実行する
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox Sh.Name & "シートがActiveになりました。"
End Sub
ブック内のシートのActive状態が解除された場合に処理を実行する
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
MsgBox Sh.Name & "シートのActive状態が解除されました。"
End Sub
特定のシートがActiveになった場合に処理を実行する
Private Sub Worksheet_Activate()
MsgBox Me.Name & "シートがActiveになりました。"
End Sub
特定のシートのActive状態が解除された場合に処理を実行する
Private Sub Worksheet_Deactivate()
MsgBox Me.Name & "シートのActive状態が解除されました。"
End Sub
最後に
今回は、シートがアクティブになった場合に処理を実行する方法を解説しました。
本記事が皆さんのお力になれば幸いです!
コメント