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:
[code language=”vb”]Private Sub CommandButton1_Click()
Application.Quit
End Sub[/code]
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:
[code language=”vb”]Private Sub CommandButton2_Click()
Application.DisplayAlerts = False
Application.Quit
End Sub[/code]
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:
[code language=”vb”]Private Sub CommandButton3_Click()
ActiveWorkbook.Save
Application.Quit
End Sub[/code]
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:
[code language=”vb”]Private Sub CommandButton4_Click()
Dim wb As Workbook
For Each wb In Workbooks
wb.Save
Next
Application.Quit
End Sub[/code]
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.