evento QueryClose
Seja inserida antes que um UserForm feche.
Sintaxe
Private Sub UserForm_QueryClose(CancelAs Integer, CloseModeAs Integer)
A sintaxe de evento QueryClose tem essas partes:
Parte | Descrição |
---|---|
Cancel | Um número inteiro. Definir esse argumento para qualquer valor diferente de 0 interrompe o eventoQueryClose em todos os formulários de usuário carregados e impede que o UserForm e o aplicativo de fechem. |
CloseMode | Um valor ou constante indicando a causa do eventoQueryClose. |
Valor de retorno
O argumento CloseMode retorna os seguintes valores:
Constant | Valor | Descrição |
---|---|---|
vbFormControlMenu | 0 | O usuário escolheu o comando Fechar do menu controle no UserForm. |
vbFormCode | 1 | A instruçãoUnload é chamada de código. |
vbAppWindows | 2 | A sessão operacional atual do Windows está terminando. |
vbAppTaskManager | 3 | O Gerenciador de tarefas do Windows está fechando o aplicativo. |
Essas constantes listadas na biblioteca de objetos do Visual Basic for Applications no Pesquisador de objetos. Observe que vbFormMDIForm também é especificado no Pesquisador de objetos, mas ainda não tem suporte.
Comentários
Geralmente, esse evento é usado para garantir que não haja tarefas inacabadas nos formulários de usuário incluídos em um aplicativo antes que o aplicativo seja fechado. Por exemplo, se um usuário não tiver salvo novos dados em nenhum no UserForm, o aplicativo pode solicitar que o usuário salve os dados.
Quando um aplicativo é fechado, você pode usar o procedimento de eventoQueryClose para definir a propriedadeCancelarcomo Verdadeira, interrompendo o processo de fechamento.
Exemplo
O seguinte código força o usuário clicar na área de cliente doUserForm. Se o usuário tentar usar a caixa Fechar na barra de título, o parâmetroCancelar será definido como um valor diferente de zero, impedindo o término. No entanto, se o usuário clicou na área de cliente CloseMode tem o valor 1 e Unload Me
é executado.
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
Confira também
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.