¿Cómo usar el evento QueryClose en VBA?

El evento `QueryClose` es parte de la programación de aplicaciones en VBA (Visual Basic for Applications) que se utiliza en el contexto del desarrollo de aplicaciones Office, principalmente con formularios en Excel, Word, Access y otros programas del paquete Office. Este evento se activa justo antes de que una ventana de usuario (UserForm) se cierre, lo que te permite ejecutar código para tomar decisiones o realizar acciones antes de que esto suceda.

Por ejemplo, podrías querer confirmar con el usuario que realmente desea cerrar el formulario o quizás verificar que toda la información necesaria haya sido ingresada.

El evento `QueryClose` tiene dos argumentos principales:

  • `CloseMode`: que indica la causa del cierre.
  • `Cancel`: una variable booleana que puede ser usada para cancelar el cierre.

Un ejemplo básico de cómo se podría usar el evento `QueryClose` en VBA sería:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = vbFormControlMenu Then
        If MsgBox("¿Está seguro que desea cerrar este formulario?", _
                vbYesNo + vbQuestion) = vbNo Then
            Cancel = True 'Cancela el cierre de la ventana
        End If
    End If
End Sub

En el ejemplo de código anterior, el evento `QueryClose` verifica si el usuario está intentando cerrar el formulario a través del control de menú del formulario (el pequeño ícono ‘X’ en la esquina superior derecha del formulario). Si es así, se muestra un mensaje de confirmación. Si el usuario responde que no, se establece `Cancel` a `True` para prevenir que el formulario se cierre.

Es importante destacar que `CloseMode` puede tener varios valores que indican la razón por la cual se está cerrando el formulario. Algunos de estos valores incluyen:

  • `vbFormControlMenu` (0): El usuario está cerrando el formulario utilizando el control de menú del formulario.
  • `vbFormCode` (1): El formulario se está cerrando mediante código, usando el método `Unload`.
  • `vbAppWindows` (2): El formulario se está cerrando porque Windows se está cerrando.
  • `vbAppTaskManager` (3): El formulario se está cerrando porque el usuario finalizó la tarea desde el Administrador de tareas de Windows.
  • `vbFormMDIForm` (4): El formulario se está cerrando porque su formulario MDI principal se está cerrando.

Utiliza `QueryClose` para administrar situaciones específicas del cierre del formulario y asegurarte de que el flujo de tu aplicación sea el adecuado.

Conoce nuestros servicios

Conoce nuestra tienda

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Deja un comentario