教えて!ExcelVBA!

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

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

構文

構文は以下の通りです。

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    ' 実行したい処理を記述する
End Sub

解説

Workbook_SheetCalculateイベントプロシージャは、Excelブックのシートが再計算されたときに実行されます。シート内の計算が実行されたときに特定の処理を実行したい場合に使用します。引数は以下の内容となります。

引数 内容
sh 計算が実行されたシートを表します。

プログラミング例

以下に、Workbook_SheetCalculateを使用したプログラミング例を示します。この例では、計算されたセルの値を取得し、特定の条件に応じてメッセージボックスを表示するという処理を行います。

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    Dim rng As Range
    Dim cell As Range
    ' 計算されたセルの範囲を取得する
    Set rng = Sh.UsedRange
    ' 範囲内の各セルをチェックする
    For Each cell In rng
        ' 特定の条件に応じてメッセージボックスを表示する
        If cell.Value > 100 Then
            MsgBox "値が100を超えました!"
        End If
    Next cell
End Sub

この例では、計算されたセルの範囲を取得し、範囲内の各セルの値をチェックしています。もしセルの値が100を超えている場合には、メッセージボックスが表示されます。

このプログラミング例では、計算されたセルの値に基づいて特定のアクションを実行することができます。実際の使用に応じて、さまざまな処理を組み合わせることができます。

まとめ

Workbook_SheetCalculateイベントプロシージャを使用することで、自動的に特定の処理を実行することができます。例えば、計算結果の監視や特定の条件に応じたアクションの実行などが可能です。