システムを開発していると、たまにフォームを[×]バツボタンで閉じさせたくないといった場合が出てきます。
例
たとえば、このようなフォームがあったとします。「閉じる」ボタン(buttonClose)をクリックする以外は、フォームを閉じられないようにします。
Private closeFlag As Boolean Private Sub Form_Load() closeFlag = False End Sub Private Sub Form_Unload(Cancel As Integer) If closeFlag = False Then Cancel = True MsgBox "[閉じる]ボタンで閉じてください。", vbExclamation, "注意" End If End Sub Private Sub buttonClose_Click() 'フラグをTrue closeFlag = True 'フォームを閉じる DoCmd.Close acForm, Me.Name End Subまず、「閉じる」ボタンが押されたかどうかの判定をするフラグ(closeFlag)を設けます。次に「閉じる」ボタンのクリックイベントプロシージャでcloseFlag=Trueにして、フォームをCloseします。そして、フォームの読み込み解除時イベントプロシージャでcloseFlag=Falseの場合に「Cancel = True」にして実行をキャンセルします。
実際に動かしてみます。
[×]ボタンをクリック。
メッセージが表示されました。
スポンサーリンク