● 概要 ●
Unloadイベントは、フォームを閉じる操作をしたとき、フォームが画面から表示されなくなる前に発生します。
イベントプロシージャは、OnUnload/読み込み解除時プロパティに設定します。
Unloadイベントプロシージャの引数にTureを設定すると、Unloadイベントをキャンセルすることができます。
次のコードは、フォームを閉じる操作が行われたとき、終了の確認のメッセージダイアログを表示し、[いいえ]ボタンがクリックされたときに、Unloadイベントをキャンセルするものです。
● サンプル ●
'フォームを閉じる操作をキャンセルする
'フォームを閉じるときに終了確認する
Private Sub Form_Unload(Cancel As Integer)
Dim myRes As Integer
'終了を確認する
myRes = MsgBox("終了してもよろしいですか", vbYesNo)
If myRes = vbNo Then
'イベントをキャンセルする
Cancel = True
End If
End Sub
● 実行結果 ●
フォームの[閉じる]ボタンを押すと、「終了してもよろしいですか」とメッセージボックスに表示され、[はい]ボタンをクリックすると、フォームは閉じます。
[いいえ]ボタンをクリックすると、フォームは開いたままになります。
● ポイント ●
フォームを閉じると、次の順番にイベントが発生します。
Unload → Deactivate → Close
Unloadイベントは、フォームを閉じるときに、フォームが画面から表示されなくなる前に発生します。
Deactivateイベントは、フォーカスが他のウィンドウに移動するときに発生します。
Closeイベントは、フォームが閉じられ、画面に表示されなくなるときに発生します。
これらのイベントの中で、イベントをキャンセルすることができるのは、Unloadイベントだけです。