QueryClose 事件
會在 UserForm 關閉之前發生。
語法
Private Sub UserForm_QueryClose (CancelAs Integer, CloseModeAs Integer)
QueryClose 事件語法包含下列部分:
部分 | 描述 |
---|---|
Cancel | SyncSchedule 參數會指定 ???。此參數的有效值為: 將此 自 變數設定為 0 以外的任何值,會停止所有已載入使用者表 單中的 QueryClose 事件,並防止 UserForm 和應用程式關閉。 |
CloseMode | 值或 常數 ,指出 QueryClose 事件的原因。 |
傳回值
CloseMode 自變數會傳回下列值:
常數 | 值 | 描述 |
---|---|---|
vbFormControlMenu | 0 | 使用者已從 UserForm 上的 [控制] 選單選擇 [關閉] 命令。 |
vbFormCode | 1 | Unload 語句是從程式碼叫用。 |
vbAppWindows | 2 | 目前的 Windows 操作環境會話即將結束。 |
vbAppTaskManager | 3 | Windows 工作管理 員正在關閉應用程式。 |
這些常數會列在 [對象瀏覽器] 的 Visual Basic for Applications 物件庫中。 請注意, vbFormMDIForm 也會在 對象瀏覽器中指定,但尚未受到支援。
註解
此事件通常用來確保應用程式關閉之前,應用程式中未包含任何未完成的工作。 例如,如果使用者尚未在任何 UserForm 中儲存新數據,應用程式可以提示使用者儲存數據。
當應用程式關閉時,您可以使用 QueryClose 事件過程將 Cancel 屬性設定為 True,以停止關閉程式。
範例
下列程式代碼會強制使用者按兩下 UserForm 用戶端區域來關閉它。 如果用戶嘗試使用標題欄中的 [關閉 ] 方塊, Cancel 參數會 設定為非零值,以防止終止。 不過,如果使用者已按兩下客戶端區域, CloseMode 的值為 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 支援與意見反應。