QueryClose (evento)
Se produce antes de que se cierre userform .
Sintaxis
Private Sub UserForm_QueryClose(CancelAs Integer, CloseModeAs Integer)
La sintaxis del evento QueryClose tiene estas partes:
Parte | Descripción |
---|---|
Cancel | El parámetro SyncSchedule especifica ???. Los valores válidos para este parámetro son: Al establecer este argumento en cualquier valor distinto de 0, se detiene el evento QueryClose en todos los formularios de usuario cargados y se impide que se cierren UserForm y la aplicación. |
CloseMode | Valor o constante que indica la causa del evento QueryClose . |
Valores devueltos
El argumento CloseMode devuelve los valores siguientes:
Constante | Valor | Descripción |
---|---|---|
vbFormControlMenu | 0 | El usuario ha elegido el comando Cerrar en el menú Control del UserForm. |
vbFormCode | 1 | La instrucción Unload se invoca desde el código. |
vbAppWindows | 2 | El entorno operativo Windows actual está finalizando. |
vbAppTaskManager | 3 | El Administrador de tareas de Windows está cerrando la aplicación. |
Estas constantes se muestran en la biblioteca de objetos de Visual Basic para Aplicaciones en el Examinador de objetos. Tenga en cuenta que vbFormMDIForm también se especifica en el Examinador de objetos pero no está admitido todavía.
Comentarios
Este evento se suele usar para asegurarse de que no hay tareas sin finalizar en los formularios de usuario incluidos en una aplicación antes de que se cierre dicha aplicación. Por ejemplo, si un usuario no ha guardado nuevos datos en ningún UserForm, la aplicación puede solicitar al usuario que guarde los datos.
Cuando se cierre una aplicación, puede usar el procedimiento de evento QueryClose para establecer la propiedad Cancel en True, deteniendo el proceso de cierre.
Ejemplo
El código siguiente obliga al usuario a hacer clic en el área de cliente UserForm para cerrarlo. Si el usuario trata de usar el cuadro Cerrar en la barra de título, el parámetro Cancelar se establece en un valor distinto de cero, evitando la finalización. Sin embargo, si el usuario ha hecho clic en el área cliente, CloseMode tiene el valor 1 y Unload Me
se ejecuta.
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
Vea también
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.