シートが再計算された時に発生するイベントプロシージャの使用方法について説明します。
【目次】
構文
イベントプロシージャの記述方法は以下の通りです。
=======================================================
Private Sub Worksheet_Calculate()
[実行する処理内容]
End Sub
=======================================================
[説明]:
シートが再計算された時に発生するイベントプロシージャにはCalculateプロシージャを使用します。[実行する処理内容]にはシートが再計算された際に実行させる内容を記述します。内容を纏めると、「シートが再計算された場合には[実行する処理内容]を実行して下さい。」との意味になります。
[記述例]:
Private Sub Worksheet_Calculate()
MsgBox "再計算されました。"
End Sub
作り方
(1)VBE(VBA記述画面)を開きます。
※画面の開き方は、こちらの手順を参考にして下さい。
(2)シートオブジェクトをダブルクリックします。
※今回は例としてSheet1をダブルクリックします。
(3)オブジェクトボックスの▼ボタンをクリックします。
(4)プルダウン一覧の中から「Worksheet」を選択します。
※この時点で「Worksheet_SelectionChange」イベントプロシージャが表示されます。(これは自動的に作成される仕組みとなっている様です。)
(5)プロシージャボックスの▼ボタンをクリックします。
(6)プルダウン一覧の中から「Calculate」を選択します。
(7)「Worksheet_Calculate」イベントプロシージャが表示されます。
(8)(7)で作成したイベントプロシージャに実行させる内容を記述します。今回は実行された際に「再計算されました。」がMsgBoxで表示される内容を記述しました。
-------------------------------------------------
-------------------------------------------------
シートが再計算された時に発生するイベントプロシージャの作成方法についての説明は以上です。
実行例
(実行前)
Sheet1シート内に計算式がセットされています。(A3セルにA1セル+A2セルの計算式がセットされています。)
(実行後)
A1セルの数値を1→2へ変更すると同時に「再計算されました。」が表示されます。(sheet1シートが再計算された事で、プロシージャが実行されてメッセージが表示されました。)
サンプル
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
おわりに
今回はシートが再計算された時に発生するイベントプロシージャの作成方法について説明しました。オブジェクトボックスでオブジェクトを選択すると、そのオブジェクト既定の「Worksheet_SelectionChange」イントプロシージャが自動的に作成されます。不要な場合は削除して下さい。また、類似の内容としてブック内のシートが再計算された時に発生するイベントプロシージャもあります。ブックの場合とシートの場合との違いは、ブックは全シートに対してイベントが発生しますが、シートは対象のシートのみにイベントが発生します。状況により使い分けて下さい。