Optimizar macros y código VBA Excel

Compatibilidad: Truco compatible con Excel 365Truco compatible con Excel 2016Truco compatible con Excel 2013Truco compatible con Excel 2010Truco compatible con Excel 2007

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.

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.

  1. Con Excel abierto.

  2. Pulsar la tecla Alt y mantener pulsada / Pulsar la tecla F11. Mostrará el editor de Visual Basic.

  3. Ir a: Barra de Menú / Insertar / Módulo. Mostrará la ventana del módulo donde escribimos la macro.

  4. 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.

  5. 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.

  1. Con Excel abierto.

  2. Pulsar la tecla Alt y mantener pulsada / Pulsar la tecla F11. Mostrará el editor de Visual Basic.

  3. Ir a: Barra de Menú / Insertar / Módulo. Mostrará la ventana del módulo donde escribimos la macro.

  4. 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.

  5. 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.

  1. Con Excel abierto.

  2. Pulsar la tecla Alt y mantener pulsada / Pulsar la tecla F11. Mostrará el editor de Visual Basic.

  3. Ir a: Barra de Menú / Insertar / Módulo. Mostrará la ventana del módulo donde escribimos la macro.

  4. 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.

  1. Con Excel abierto.

  2. Pulsar la tecla Alt y mantener pulsada / Pulsar la tecla F11. Mostrará el editor de Visual Basic.

  3. Ir a: Barra de Menú / Insertar / Módulo. Mostrará la ventana del módulo donde escribimos la macro.

  4. 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.

  1. Con Excel abierto.

  2. Pulsar la tecla Alt y mantener pulsada / Pulsar la tecla F11. Mostrará el editor de Visual Basic.

  3. Ir a: Barra de Menú / Insertar / Módulo. Mostrará la ventana del módulo donde escribimos la macro.

  4. 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.

Nivel de dificultad: Experto VBA-Macros Excel Experto VBA – Macros

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *