Cerrar un libro con VBA

Cuando has realizado cambios a un libro de Excel y deseas cerrar el libro a través de una macro  Excel mostrará inevitablemente un cuadro de diálogo preguntándonos si deseamos guardar los cambios realizados.

Cerrar un libro con VBA

Existe varias alternativas para evitar que Excel despliegue dicha advertencia y a continuación mencionaré cada una de ellas:

No mostrar alertas en Excel

Application.DisplayAlerts = False
ThisWorkbook.Close

La instrucción Application.DisplayAlerts = False apaga todas las alertas de Excel para nuestro libro lo cual también incluye la advertencia de guardar los cambios y por lo tanto Excel no la mostrará. Una gran desventaja de este método es que no guarda los cambios hechos previamente y se perderán al momento de cerrar el libro.

Guardar el libro antes de cerrarlo

ThisWorkbook.Save
ThisWorkbook.Close

A diferencia del método anterior, la primera sentencia en este código guarda todos los cambios realizados y posteriormente lo cierra por lo tanto Excel no muestra la advertencia.

Utilizar el argumento SaveChanges

ThisWorkbook.Close SaveChanges:=True

El segundo método era muy bueno pero aún lo podemos mejorar con ésta tercera opción que es utilizar el argumento SaveChanges del método Close que nos permite indicar que deseamos guardar los cambios al cerrar el libro. De esta manera hemos mejorado el código del segundo método al reducirlo a una sola línea.

Al trabajar con macros e intentar cerrar un libro desde código VBA recuerda guardar primero los cambios para evitar desplegar cualquier advertencia y por supuesto para evitar también la pérdida de datos.

Artículos relacionados
Programando en VBA