教えて!ExcelVBA!

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

【ExcelVBA ブック操作】ブック内のシートがアクティブになった時に発生するイベントプロシージャを作成するにはどうすればいいの?教えて!

構文

構文は以下の通りです。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    ' 実行したいコードをここに記述します
End Sub

解説

Workbook_SheetActivateイベントプロシージャは、Excelブック内のシートがアクティブになったときに実行されます。シートの切り替えや選択時に特定の処理を実行したい場合に使用します。引数は以下の内容となります。

引数 内容
Sh アクティブになったシートを表します。

プログラミング例

以下に、Workbook_SheetActivateイベントプロシージャのプログラミング例を示します。例として、アクティブになったシートの名前をメッセージボックスで表示するコードを紹介します。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    MsgBox "アクティブなシートは「" & Sh.Name & "」です。"
End Sub

このコードでは、Sh.Nameを使用してアクティブなシートの名前を取得し、メッセージボックスで表示しています。

まとめ

Workbook_SheetActivateイベントプロシージャは、Excelブック内のシートがアクティブになったときに自動的に実行されるプロシージャです。VBAエディタを使って対象のブックにコードを追加することで利用できます。