共用方式為


QueryClose 事件

發生在 使用者表單 關閉之前。

語法

私人子UserForm_QueryClose (整數取消, 關閉模式以整數)

QueryClose 事件語法包含以下部分:

部分 描述
Cancel SyncSchedule 參數會指定 ???。此參數的有效值為: 將此 參數 設為非 0 的任意值,會停止所有載入的使用者表單中的 QueryClose 事件,並防止 使用者表單 及應用程式關閉。
關閉模式 一個值或 常數 ,表示 QueryClose 事件的成因。

傳回值

CloseMode 參數回傳以下值:

常數 描述
vbFormControlMenu 0 使用者已從使用者表單控制選單中選擇關閉指令。
vbFormCode 1 Unload 陳述式是從程式碼中調用的。
vbAppWindows 2 目前的 Windows 作業系統工作階段即將結束。
vbAppTaskManager 3 Windows 工作管理員 正在關閉該應用程式。

這些常數列於物件瀏覽器的 Visual Basic for Applications 物件函式庫中。 請注意, vbFormMDIForm 也在 物件瀏覽器中指定,但尚未支援。

註解

此事件通常用於確保應用程式中包含的使用者表單中沒有未完成的任務,該應用程式在關閉前。 例如,如果使用者尚未在任何 使用者表單中儲存新資料,應用程式可以提示使用者儲存資料。

當應用程式關閉時,你可以使用 QueryClose 事件程序將 Cancel 屬性設為 True,從而停止關閉程序。

範例

以下程式碼強制使用者點擊 UserForm 用戶端區域以關閉該區域。 如果使用者嘗試使用標題欄中的 關閉 框, 取消參數會 被設定為非零值,阻止終止。 然而,如果使用者點擊了用戶端區域,關閉 模式 的值為 1,並 Unload Me 會被執行。

Private Sub UserForm_Activate()
    Me.Caption = "You must Click me to kill me!"
End Sub

Private Sub UserForm_Click()
  Unload Me
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    'Prevent user from closing with the Close box in the title bar.
    If CloseMode <> 1 Then Cancel = 1
    Me.Caption = "The Close box won't work! Click me!"
End Sub

另請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應