Como usar o evento QueryClose em VBA?

O evento `QueryClose` em VBA é usado para capturar o momento em que um formulário está prestes a ser fechado. Geralmente, ele é utilizado em formulários do Microsoft Access ou UserForms em Excel para executar código antes que o fechamento ocorra, permitindo que você cancele o fechamento ou realize ações de limpeza.

Aqui está um guia sobre como usar o evento `QueryClose`:

No Microsoft Access:

O evento `QueryClose` não é diretamente disponível em formulários do Access como em Excel, mas você pode usar `Unload` ou `Close` para manipular o fechamento do formulário.

No Excel:

Para um UserForm em Excel VBA, o evento que você deve usar é `QueryClose`. Aqui está um exemplo de como utilizá-lo:

  • Abra o Editor do VBA:
    • Pressione `ALT` + `F11` para abrir o Editor do VBA no Excel.
  • Insira um UserForm:
    • No menu, clique em `Inserir` e depois em `UserForm`.
  • Acesse o código do UserForm:
    • Dê um duplo clique sobre o UserForm que você criou para acessar a janela de código.
  • Implemente o evento `QueryClose`:

Aqui está um exemplo de código:

   Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
       ' Verifique se o formulário está sendo fechado pelo usuário (e não pelo sistema)
       If CloseMode = vbFormControlMenu Then
           ' Exibe uma mensagem para confirmar se o usuário realmente quer fechar
           If MsgBox("Você realmente deseja fechar o formulário?", vbYesNo + vbQuestion) = vbNo Then
               ' Cancela o fechamento do formulário
               Cancel = True
           End If
       End If
   End Sub

Explicação do Código:

  • Testar o UserForm:
    • Execute o UserForm pressionando `F5` ou clicando em `Executar` -> `Executar Sub/UserForm`.

Com este exemplo, ao tentar fechar o formulário, será exibida uma mensagem perguntando se o usuário realmente deseja fechar o formulário. Se o usuário selecionar “Não”, o fechamento será cancelado.

Você pode personalizar o código dentro do `QueryClose` para realizar qualquer lógica adicional necessária antes do fechamento do formulário.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project