



VBA para Excel dispone del objeto de aplicación Excel que incluyen ciertas propiedades que optimizan las macros, dando una apariencia más profesional a nuestros contenidos al optimizar macros y código VBA Excel.

PROPIEDAD: Application.DisplayAlerts
Permite ocultar o mostrar la visualización de mensajes y avisos de Excel.
- Admite los valores True (muestra) False (oculta).
- El valor por predeterminado es True.
Con Excel abierto.
Pulsar la tecla Alt y mantener pulsada
Pulsar la tecla F11. Mostrará el editor de Visual Basic.
Ir a: Barra de Menú
Insertar
Módulo. Mostrará la ventana del módulo donde escribimos la macro.
Escribir el código de la macro sin la propiedad:
Sub Cierra_Libro1()
Workbooks("Libro1.xlsx").Close
End Sub
Realizar cambios en la hoja
Ejecutar la macro. Mostrará mensaje de
confirmación para guardar los cambios.Escribir el código de la macro con la propiedad:
Sub Cierra_Libro2()
Application.DisplayAlerts = False
Workbooks("Libro1.xlsx").Close
Application.DisplayAlerts = True
End Sub
Realizar cambios en la hoja
Ejecutar la macro. No mostrará mensaje de
confirmación para guardar los cambios.
PROPIEDAD: Application.ScreenUpdating
Permite activar o desactivar la actualización de pantalla, movimientos de pantalla que se producen al seleccionar celdas, hojas y libros, etc.
- Admite los valores True (muestra la actualización) / False (oculta la actualización).
- El valor por predeterminado es True.
Con Excel abierto.
Pulsar la tecla Alt y mantener pulsada
Pulsar la tecla F11. Mostrará el editor de Visual Basic.
Ir a: Barra de Menú
Insertar
Módulo. Mostrará la ventana del módulo donde escribimos la macro.
Escribir el código de la macro sin la propiedad:
Sub Parpadeo1()
For i = 1 To 5
Sheets.Add after:=Sheets(Sheets.Count)
For j = 1 To 10
Cells(i, 1) = i
Next
Next
Sheets(1).Activate
End Sub
Ejecutar la macro. La macro mostrará como se cambia de hoja y va insertando
el número en la fila de cada hoja.Escribir el código de la macro con la propiedad:
Sub Parpadeo1()
Application.ScreenUpdating = False
For i = 1 To 5
Sheets.Add after:=Sheets(Sheets.Count)
For j = 1 To 10
Cells(i, 1) = i
Next
Next
Sheets(1).Activate
End Sub
Ejecutar la macro. La macro NO mostrará cómo se cambia de hoja y va insertando
el número en la fila de cada hoja.
PROPIEDAD: Application.Visible
Determina si el objeto es visible o no, pudiéndose aplicar con userform (formularios)
- Admite los valores True (en el evento del formulario Terminate) / False (en el evento del formulario Initialize).
- El valor por predeterminado es True.
Con Excel abierto.
Pulsar la tecla Alt y mantener pulsada
Pulsar la tecla F11. Mostrará el editor de Visual Basic.
Ir a: Barra de Menú
Insertar
Módulo. Mostrará la ventana del módulo donde escribimos la macro.
Escribir el código de la macro:
Sub OcultaExcel()
Application.Visible = False
Application.Wait Now + TimeValue("00:00:05")
Application.Visible = True
End Sub
Ejecutar la macro. Verificar como la ventana de Excel se oculta durante 5 segundos.
PROPIEDAD: Application.calculation
Permite desactivar los cálculos automáticos, evitando que se recalcule todo cada vez que se pegan o modifican datos.
Con Excel abierto.
Pulsar la tecla Alt y mantener pulsada
Pulsar la tecla F11. Mostrará el editor de Visual Basic.
Ir a: Barra de Menú
Insertar
Módulo. Mostrará la ventana del módulo donde escribimos la macro.
Escribir el código de la macro:
Sub Calcula1()
Application.Calculation = xlCalculationManual
Worksheets("Hoja1").Calculate
Range("A1:C5").Calculate
Application.Calculation = xlCalculationAutomatic
End Sub
Ejecutar la macro. Desactiva los cálculos automáticos, recalcula la hoja 1 y el rango entre A1:C5
y vuelve a activar el cálculo automático.
PROPIEDAD: Application.EnableEvents
Permite eliminar o incluir los eventos de hoja y libro. No afecta a los controles en los formularios.
- Admite los valores True / False.
- El valor por predeterminado es True.
Con Excel abierto.
Pulsar la tecla Alt y mantener pulsada
Pulsar la tecla F11. Mostrará el editor de Visual Basic.
Ir a: Barra de Menú
Insertar
Módulo. Mostrará la ventana del módulo donde escribimos la macro.
Escribir el código de la macro:
Sub Eventos()
Application.EnableEvents = False
ActiveWorkbook.Save
Application.EnableEvents = True
End Sub
Ejecutar la macro. Deshabilita los eventos antes de guardar el libro, evitando
ejecutar el evento BeforeSave.
Así al optimizar macros y código VBA, obtenemos una apariencia más profesional en nuestros libros Excel.

- Optimizar y reducir los libros
- Optimizar fórmulas, hojas y libros
- Especificaciones y límites modelo de datos
- Exportar registro del visor de eventos
- Reparar libro dañado
- Reducir tamaño de tablas dinámicas
- Tamaño libro con imágenes
- Accesibilidad del libro
- Recuperar los archivos dañados
- Libros de gran tamaño xlsb
Estas sentencias en Excel 2016 no estan funcionando
Application.ScreenUpdate= False
Applicatin.EnableEvents = False
Algún comentario al respecto, por favor
Hola Ricardo,
Sin más pistas es dificil identificar el error. Indicas "Application.ScreenUpdate" y es "Application.ScreenUpdating"; y "Applicatin.EnableEvents" es "Application.EnableEvents"
Recuerda que al final del código, repite la instrucción como "Application.ScreenUpdating=True"
Saludos.
Buenas, pregunto si se agiliza aun mas mostrando solo los formularios en un archivo connmas de 100 hojas, es decir que es mas rapido sin mostrar las hojas y que solo esten visibles los formularios, gracias
Hola Oscar,
Algo menos de consumo de memoria se produce, pero si las fórmulas están vinculadas a las hojas visibles no será muy significativo.
Saludos.