システムを開発していると、たまにフォームを[×]バツボタンで閉じさせたくないといった場合が出てきます。
例
たとえば、このようなフォームがあったとします。
「閉じる」ボタン(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」にして実行をキャンセルします。実際に動かしてみます。

[×]ボタンをクリック。

メッセージが表示されました。
スポンサーリンク