Consejos de velocidad de Excel 2016 VBA

Consejos de velocidad de Excel 2016 VBA

VBA para Excel 2016 es rápido, pero no siempre es lo suficientemente rápido. (Los programas de computadora nunca son lo suficientemente rápidos). Siga leyendo para descubrir algunos ejemplos de programación que puede usar para acelerar sus macros.

Desactivar la actualización de la pantalla

Al ejecutar una macro, puede sentarse y observar toda la acción en pantalla que ocurre en la macro. Aunque hacer esto puede ser instructivo, después de que la macro funcione correctamente, a menudo es molesto y puede ralentizar considerablemente el rendimiento de la macro. Afortunadamente, puede desactivar la actualización de la pantalla que ocurre normalmente cuando ejecuta una macro. Para desactivar la actualización de la pantalla, use la siguiente declaración:

Application.ScreenUpdating = Falso

Si desea que el usuario vea lo que está sucediendo en cualquier momento durante la macro, use la siguiente declaración para volver a activar la actualización de la pantalla:

Application.ScreenUpdating = True

Para demostrar la diferencia de velocidad, ejecute esta simple macro, que llena un rango con números:

Sub FillRange ()
  Dim r tan largo, c tan largo
  Número tenue tan largo
  Número = 0
  Para r = 1 a 50
    Para c = 1 a 50
      Número = Número + 1
      Celdas (r, c) .Seleccionar
      Celdas (r, c). Valor = Número
    Siguiente c
  Siguiente r
End Sub

Verá que se selecciona cada celda y se ingresa el valor en las celdas. Ahora inserte la siguiente declaración al comienzo del procedimiento y ejecútela nuevamente:

Application.ScreenUpdating = Falso

El rango se llena mucho más rápido y no ve el resultado hasta que la macro termina de ejecutarse y la actualización de la pantalla se establece (automáticamente) en Verdadero.

Cuando está depurando código, la ejecución del programa a veces termina en algún punto intermedio sin que haya vuelto a activar la actualización de pantalla. Esto a veces hace que la ventana de la aplicación de Excel deje de responder por completo. La forma de salir de este estado congelado es simple: regrese al VBE y ejecute la siguiente declaración en la ventana Inmediato:

Application.ScreenUpdating = True

Desactivar el cálculo automático

Si tiene una hoja de trabajo con muchas fórmulas complejas, puede encontrar que puede acelerar las cosas considerablemente configurando el modo de cálculo en manual mientras se ejecuta la macro. Cuando finalice la macro, vuelva a establecer el modo de cálculo en automático.

La siguiente declaración establece el modo de cálculo de Excel en manual:

Application.Calculation = xlCalculationManual

Ejecute la siguiente instrucción para establecer el modo de cálculo en automático:

Application.Calculation = xlCalculationAutomatic

Si su código usa celdas con resultados de fórmula, desactivar el cálculo significa que las celdas no se volverán a calcular a menos que le indique explícitamente a Excel que lo haga.

Eliminando esos molestos mensajes de alerta

Como sabes, una macro puede realizar automáticamente una serie de acciones. En muchos casos, puede iniciar una macro y luego pasar el rato en la sala de descanso mientras Excel hace lo suyo. Sin embargo, algunas operaciones de Excel muestran mensajes que requieren una respuesta humana. Estos tipos de mensajes significan que no puede dejar Excel desatendido mientras ejecuta su macro, a menos que conozca el truco secreto.

Consejos de velocidad de Excel 2016 VBA

Puede indicarle a Excel que no muestre este tipo de alertas mientras ejecuta una macro.

El truco secreto para evitar estos mensajes de alerta es insertar la siguiente declaración de VBA en su macro:

Application.DisplayAlerts = False

Excel ejecuta la operación predeterminada para este tipo de mensajes. En el caso de eliminar una hoja, la operación predeterminada es Eliminar. Si no está seguro de cuál es la operación predeterminada, realice una prueba para ver qué sucede.

Cuando finaliza el procedimiento, Excel restablece automáticamente la propiedad DisplayAlerts en True. Si necesita volver a activar las alertas antes de que finalice el procedimiento, utilice esta declaración:

Application.DisplayAlerts = True

Simplificando referencias a objetos

Como probablemente ya sepa, las referencias a objetos pueden llegar a ser muy extensas. Por ejemplo, una referencia completa a un objeto Range puede verse así:

Libros de trabajo ("MyBook.xlsx"). Hojas de trabajo ("Hoja1") _
  .Rango ("Tasa de interés")

Si su macro utiliza con frecuencia este rango, es posible que desee crear una variable de objeto mediante el comando Establecer. Por ejemplo, la siguiente declaración asigna este objeto Range a una variable de objeto denominada Tasa:

Establecer tarifa = Libros de trabajo ("MyBook.xlsx") _
  .Hojas de trabajo ("Hoja1"). Rango ("Tasa de interés")

Después de definir esta variable de objeto, puede utilizar la variable Tasa en lugar de la referencia extensa. Por ejemplo, puede cambiar el valor de la celda denominada Tasa de interés:

Rate.Value = .085

Esto es mucho más fácil de escribir que la siguiente declaración:

Libros de trabajo ("MyBook.xlsx"). Hojas de trabajo ("Hoja1"). _
  Rango ("Tasa de interés") = .085

Además de simplificar su codificación, el uso de variables de objeto acelera considerablemente sus macros.

Declarar tipos de variables

Por lo general, no tiene que preocuparse por el tipo de datos que asigna a una variable. Excel maneja todos los detalles detrás de escena. Por ejemplo, si tiene una variable llamada MyVar, puede asignar un número de cualquier tipo a esa variable. Incluso puede asignarle una cadena de texto más adelante en el procedimiento.

Si desea que sus procedimientos se ejecuten lo más rápido posible, dígale a Excel qué tipo de datos se asignarán a cada una de sus variables. Esto se conoce como declarar el tipo de una variable.

En general, debe usar el tipo de datos que requiera la menor cantidad de bytes pero que aún pueda manejar todos los datos asignados. Cuando VBA trabaja con datos, la velocidad de ejecución depende de la cantidad de bytes que VBA tiene a su disposición. En otras palabras, cuantos menos bytes usen los datos, más rápido VBA podrá acceder y manipular los datos. Una excepción a esto es el tipo de datos Integer. Si la velocidad es crítica, utilice el tipo de datos Long en su lugar.

Si usa una variable de objeto, puede declarar la variable como un tipo de objeto en particular. He aquí un ejemplo:

Tasa de atenuación como rango
Establecer tarifa = Libros de trabajo ("MyBook.xlsx") _
  .Hojas de trabajo ("Hoja1"). Rango ("Tasa de interés")

Usando la estructura With-End With

¿Necesita establecer una serie de propiedades para un objeto? Su código se ejecuta más rápido si usa la estructura With-End With. Un beneficio adicional es que su código puede ser más fácil de leer.

El siguiente código no usa With-End With:

Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
Selection.WrapText = True
Selection.Orientation = 0
Selection.ShrinkToFit = False
Selection.MergeCells = False

Este es el mismo código, reescrito para usar With-End With:

Con selección
  .HorizontalAlignment = xlCenter
  .VerticalAlignment = xlCenter
  .WrapText = Verdadero
  .Orientación = 0
  .ShrinkToFit = Falso
  .MergeCells = Falso
Terminar con

Cuando use With-End With, asegúrese de que cada declaración comience con un punto.


Cómo programar una reunión de Skype

Cómo programar una reunión de Skype

Aprenda a programar reuniones efectivas en Skype Empresarial desde Outlook o la aplicación de Skype. Siga nuestros sencillos pasos para una mejor colaboración.

Cómo usar Pegado especial en Excel 2016

Cómo usar Pegado especial en Excel 2016

Aprende a usar la función de Pegado Especial en Excel 2016 para optimizar la forma en que insertas datos en tus hojas de cálculo. Controla qué información se pega y realiza operaciones matemáticas simples con facilidad.

Funciones de Excel para trabajar con números hexadecimales, octales, decimales y binarios

Funciones de Excel para trabajar con números hexadecimales, octales, decimales y binarios

Descubre las funciones de Excel para convertir entre binario, octal, decimal y hexadecimal con esta tabla informativa y consejos útiles para optimizar tu trabajo.

Instalar y activar un complemento de Power Query de Excel

Instalar y activar un complemento de Power Query de Excel

Completa guía sobre cómo instalar y activar el complemento de Power Query en Excel 2010 y 2013, y su uso en Excel 2016. Aprende a gestionar datos de manera efectiva en Excel.

Access 2019: Cómo editar y modificar una base de datos de Access

Access 2019: Cómo editar y modificar una base de datos de Access

Aprende a modificar y editar bases de datos en Access 2019, incluyendo cómo nombrar campos, agregar y eliminar campos, y definir tipos de datos. ¡Optimiza tu trabajo con Access!

Cómo usar el comando Ir a en Word 2016

Cómo usar el comando Ir a en Word 2016

El comando Ir a en Word 2016 es una herramienta poderosa para navegar rápidamente a una página específica o a elementos dentro del documento. Aprende a optimizar tu flujo de trabajo con este práctico comando.

Cómo resaltar fechas de fin de semana en Excel

Cómo resaltar fechas de fin de semana en Excel

Aprende cómo resaltar fechas de fin de semana en Excel utilizando formato condicional para mejorar la gestión de tus datos de programación.

Cómo insertar un enlace para enviar un correo electrónico en una hoja de cálculo de Excel 2010

Cómo insertar un enlace para enviar un correo electrónico en una hoja de cálculo de Excel 2010

Aprenda a insertar un hipervínculo "mailto" en Excel 2010 para crear correos electrónicos de manera simple y eficiente.

Cómo usar las opciones de pegado y Pegado especial en Word 2007

Cómo usar las opciones de pegado y Pegado especial en Word 2007

Aprenda a utilizar las opciones de pegado y Pegado especial en Word 2007 para manejar eficazmente bloques de texto. Optimizando su formato y presentación.

Cómo modificar un gráfico SmartArt en PowerPoint

Cómo modificar un gráfico SmartArt en PowerPoint

Descubre cómo modificar un gráfico SmartArt en PowerPoint incluyendo cambios de diseño, estructura y texto. Mejora tus presentaciones con estos consejos SEO.