教えて!ExcelVBA!

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

ExcelVBAでブック内シートがアクティブになった時に処理を実行する方法

構文

構文は以下の通りです。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    ' シートがアクティブになったときに実行されるコード
End Sub

解説

Workbook_SheetActivateは、ブック内でシートがアクティブになるたびに自動的に実行されるイベントです。Shはアクティブになったシートを表し、シート名やセルの内容を確認したり、シートに対して何らかの操作を行ったりできます。

プログラミング例

具体的なプログラミング例を紹介します。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    ' アクティブになったシート名を表示する
    MsgBox "アクティブになったシート名: " & Sh.Name
End Sub

上記のプログラムは、ブック内でシートが選択されてアクティブになるたびに、選択されたシートの名前がメッセージボックスで表示されます。

まとめ

Workbook_SheetActivateイベントは、ワークブック内でシートがアクティブになるたびに自動的に呼び出されるイベントです。アクティブになったシートの名前を取得したり、特定セルに値を設定したりすることで、シートのアクティベーションに応じたカスタマイズが可能です。