即効テクニック |
● 概要 ● 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イベントだけです。