Hay ocasiones en las que necesitamos cerrar Excel con una macro, ya sea como consecuencia de pulsar el botón de un formulario, o porque has creado una macro que realiza algún procedimiento desatendido y necesitas dejar cerrado Excel después de la ejecución.
El método Application.Quit
La instrucción VBA que nos permitirá cerrar Excel es el método Quit del objeto Application. Para probar esta instrucción puedes insertar un botón ActiveX en la hoja y hacer doble clic para insertar el siguiente código:
Private Sub CommandButton1_Click() Application.Quit End Sub
Esta instrucción será suficiente para cerrar Excel automáticamente siempre y cuando no hayan existido cambios en el archivo de lo contrario Excel mostrará una notificación preguntando si deseamos guardar los cambios.
Macro para cerrar Excel sin notificaciones
Si no te interesan los cambios realizados al libro y solamente deseas cerrar Excel desde una macro, entonces puedes ignorar las notificaciones utilizando la propiedad DisplayAlerts de la siguiente manera:
Private Sub CommandButton2_Click() Application.DisplayAlerts = False Application.Quit End Sub
Este método es útil cuando la macro manipula información de las hojas de Excel pero no nos interesa guardar las modificaciones realizadas, tal vez porque el resultado final se guarda en un archivo de texto o porque simplemente se imprime el resultado.
Guardar el libro activo y cerrar Excel
Si por el contrario, si deseas guardar los cambios hechos al libro antes de cerrar Excel, entonces puedes utilizar la siguiente instrucción:
Private Sub CommandButton3_Click() ActiveWorkbook.Save Application.Quit End Sub
Al utilizar el método Save del objeto ActiveWorkbook guardaremos cualquier cambio en el libro activo y posteriormente cerraremos Excel.
Guardar los libros abiertos y cerrar Excel
El código de la sección anterior solamente considera guardar los cambios del libro activo, pero hay ocasiones en las que se han abierto varios libros y aun así necesitamos crear una macro para cerrar Excel. Una alternativa es guardar los cambios de todos los libros abiertos con el siguiente código:
Private Sub CommandButton4_Click() Dim wb As Workbook For Each wb In Workbooks wb.Save Next Application.Quit End Sub
Si se han creado nuevos libros de Excel antes de ejecutar la macro y nunca han sido guardados previamente, entonces la macro los guardará de manera predeterminada en la carpeta Documentos.
Ahora que ya sabes cómo cerrar Excel desde una macro puedes integrar esta funcionalidad a tus aplicaciones de Excel y evitar dejar abierta la hoja de cálculo después de haber ejecutado tu código VBA. Descarga el libro de trabajo y comienza a utilizar las macros desarrolladas.