ユーザーフォームが閉じたあとに発生するイベント(Terminateイベント)
ユーザーフォームが閉じたあとに発生するイベントが Terminate イベントです。このイベントに対するイベントプロシージャを作成することで、ユーザーフォームが閉じるあとに行いたい処理を実行することができます。ここでは Excel のユーザーフォームでユーザーフォームが閉じるたあとに発生する Terminate イベントについて解説します。
(Last modified: )
Terminateイベントの利用方法
イベントフォームが閉じたあとに発生するイベントが Terminate
です。ユーザーフォームオブジェクトで発生します。このイベントに対するイベントプロシージャを作成することで、ユーザーフォームが閉じたあとに行いたい処理などを実行することができます。スコープ外になったときに発生します。」と記載されています。
※ 公式サイトではこのイベントが発生するタイミングとして「オブジェクトを参照するすべての 変数が Nothing に設定され、オブジェクトのインスタンスへの参照がメモリからすべて削除されるか、オブジェクトへの最後の参照が スコープ外になったときに発生します。」と記載されています。
それでは例として次のようにテキストボックスとコマンドボタンが 1 つずつ設置されたユーザーフォームで Terminate
イベントに対するイベントプロシージャを作成してみます。
ユーザーフォームの何もコントロールが設置されているところをダブルクリックしてください。
ユーザーフォームの既定のイベントに対するイベントプロシージャが表示されます。
Private Sub UserForm_Click() End Sub
Visual Basic Editor の画面右上にある次の部分をクリックし、イベントの種類として Terminate
を選択してください。
Terminate
イベントに対するイベントプロシージャが表示されました。(最初に表示された Click
イベント用のイベントプロシージャは消して頂いて構いません)。
Private Sub UserForm_Terminate() End Sub
それではユーザーフォームが閉じたあとに行いたい処理をこのイベントプロシージャの中に記述していきます。今回はダイアログを表示するようにしました。
Private Sub UserForm_Terminate() MsgBox "作業は完了しました" End Sub
それでは実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。
ユーザーフォームが表示されたら、右上に表示されている「×」をクリックしてユーザーフォームを閉じてください。
ユーザーフォームが閉じたあとに Terminate
イベントが発生し、ダイアログが表示されます。
このように Terminate
イベントのイベントプロシージャを作成することで、ユーザーフォームが閉じたあとに行いたい処理を実行することができます。
-- --
Excel のユーザーフォームでユーザーフォームが閉じるたあとに発生する Terminate イベントについて解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。