教えて!ExcelVBA!

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

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

構文

構文は以下の通りです。

Private Sub Worksheet_Calculate()
    ' 実行したいコードを記述する
End Sub

Worksheet_Calculateイベントプロシージャは、Excelのシート上で計算が実行される度に自動的に実行されます。このイベントプロシージャを使うことで、セルの値や数式が変更された際に特定の処理を実行することができます。

プログラミング例

以下に、具体的な例を幾つか紹介します。

例1: 計算結果の表示

Worksheet_Calculateイベントプロシージャを使って、計算結果を自動的に表示する例です。

Private Sub Worksheet_Calculate()
    ' 計算結果をセルに表示する
    Range("A1").Value = Range("B1").Value + Range("C1").Value
End Sub

この例では、セルB1とC1の値を足し合わせた結果をセルA1に表示します。計算が実行される度に、この処理が自動的に実行されるため、常に最新の計算結果が表示されます。

例2: 条件に基づく処理

Worksheet_Calculateイベントプロシージャを使って、特定の条件に基づいて処理を行う例です。

Private Sub Worksheet_Calculate()
    ' セルA1の値が10以上の場合にメッセージを表示する
    If Range("A1").Value >= 10 Then
        MsgBox "A1の値が10以上です!"
    End If
End Sub

この例では、セルA1の値が10以上の場合にメッセージボックスが表示されます。計算が実行されるたびに、条件が評価され、条件に合致する場合にはメッセージが表示されます。

まとめ

Worksheet_Calculateイベントプロシージャは、セルの値や数式の計算が実行される度に自動的に実行される便利な機能です。対象のシートにWorksheet_Calculateイベントプロシージャを実装することで、自動的に計算結果を表示したり、特定の条件に基づいて処理を行ったりすることができます。是非活用してください。