ここでは、VBA で利用可能なユーザーフォームの初期イベントと終了イベントについて一覧でまとめてあります。イベントは初期化イベントが1つ(UserForm_Initialize)、終了イベントが2つ(UserForm_QueryClose、UserForm_Terminate)あります。
スポンサーリンク
ユーザーフォーム初期化・終了時イベント
下表に、ユーザーフォームの初期化および終了時に発生するイベントの一覧を示します。
発生タイミング | イベントハンドラ定義 | 概要 |
---|---|---|
初期 | Private Sub UserForm_Initialize() | フォームの表示前に呼び出される。主に初期処理を行う。 |
終了 | Private Sub UserForm_QueryClose( cancel As Integer, closemode As Integer) | パラメータ cancel に非ゼロ(真値)を設定することでキャンセルができる。 |
終了 | Private Sub UserForm_Terminate() | 終了時に呼び出される。キャンセルはできない。なお、End ステートメント呼び出し時には、本イベントは発生しない(下記リンク参照)。 |
QueryClose イベントの closemode パラメータ
QueryClose イベントの第2パラメータの closemode によって、どのようにユーザーフォームが閉じられようとしているか判断することができます。下表はMSDNに掲載されている内容です。
例えば、closemode を判定することによって、× ボタンでフォームを閉じる操作のみを禁止したりすることが出来るようになります。(あまり意味ないかもしれませんが・・)
定数 値 説明 vbFormControlMenu 0 ユーザーが UserForm 上のコントロール メニューで [閉じる] コマンドを選択しました。 vbFormCode 1 コードから Unload ステートメントが呼び出されました。 vbAppWindows 2 現在の Windows オペレーティング環境セッションが終了しようとしています。 vbAppTaskManager 3 Windows のタスク マネージャーがアプリケーションを閉じます。