教えて!ExcelVBA!

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

ExcelVBAでブック内シートが再計算された時に処理を実行する方法

構文

構文は以下の通りです。

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    ' シートの計算が行われた時の処理
End Sub

解説

Workbook_SheetCalculateは、ブック内の任意のシートで計算が行われたときに実行されるイベントです。このイベントは、セルの内容が変更され、それが再計算を引き起こすときに発生します。Shは、イベントが発生したシートを指します。このオブジェクトを使って、計算が行われたシートを操作できます。

プログラミング例

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

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    MsgBox Sh.Name & "で計算が行われました。"
End Sub

上記のプログラムは、シートで再計算が発生すると、そのシートの名前を表示します。

まとめ

Workbook_SheetCalculateイベントは、ブック内で計算が行われたときに自動的に発生します。このイベントを利用して、シートの計算が行われた際に特定の処理(メッセージ表示など)を行うことができます。