/ / Excel VBA Application Object

Objeto de aplicación de Excel VBA

Hoja de trabajofunción | Actualización de pantalla | DisplayAlerts | Cálculo

La madre de todos los objetos es el propio Excel. Lo llamamos el Objeto de aplicación. El objeto de la aplicación da acceso a muchas opciones relacionadas con Excel.

Hoja de trabajofunción

Puede utilizar la propiedad WorksheetFunction en Excel VBA Para acceder a las funciones de Excel.

1. Por ejemplo, coloque un botón de comando en su hoja de trabajo y agregue la siguiente línea de código:

Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

Cuando hace clic en el botón de comando en la hoja de cálculo, Excel VBA calcula el promedio de los valores en las celdas A1 y A2 y coloca el resultado en la celda A3.

WorksheetFunction en Excel VBA

Nota: en lugar de Application.WorksheetFunction.Promedio, simplemente use WorksheetFunction.Average. Si observa la barra de fórmulas, puede ver que la fórmula en sí no está insertada en la celda A3. Para insertar la fórmula en la celda A3, use la siguiente línea de código:

Range("A3").Value = "=AVERAGE(A1:A2)"

Actualización de pantalla

A veces puede resultarle útil desactivar la actualización de la pantalla (para evitar el parpadeo) al ejecutar el código. Como resultado, su código se ejecutará más rápido.

1. Por ejemplo, coloque un botón de comando en su hoja de trabajo y agregue las siguientes líneas de código:

Dim i As Integer

For i = 1 To 10000
    Range("A1").Value = i
Next i

Cuando hace clic en el botón de comando en la hoja de cálculo, Excel VBA muestra cada valor en una pequeña fracción de segundo y esto puede llevar algún tiempo.

Actualización de pantalla

2. Para acelerar el proceso, actualice el código de la siguiente manera.

Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 10000
    Range("A1").Value = i
Next i

Application.ScreenUpdating = True

Como resultado, su código se ejecutará mucho más rápido y solo verá el resultado final (10000).

DisplayAlerts

Puede indicar a Excel VBA que no muestre alertas mientras ejecuta el código.

1. Por ejemplo, coloque un botón de comando en su hoja de trabajo y agregue la siguiente línea de código:

ActiveWorkbook.Close

Cuando hace clic en el botón de comando en la hoja de trabajo, Excel VBA cierra su archivo de Excel y le pide que guarde los cambios que realizó.

DisplayAlerts

2. Para indicar a Excel VBA que no muestre esta alerta mientras ejecuta el código, actualice el código de la siguiente manera.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

Como resultado, Excel VBA cierra su archivo de Excel, sin pedirle que guarde los cambios realizados. Cualquier cambio se pierde.

Cálculo

Por defecto, el cálculo se establece en automático. Como resultado, Excel vuelve a calcular el libro automáticamente cada vez que cambia un valor que afecta a una fórmula. Si su libro de trabajo contiene muchas fórmulas complejas, puede acelerar su macro configurando el cálculo en manual.

1. Por ejemplo, coloque un botón de comando en su hoja de trabajo y agregue la siguiente línea de código:

Application.Calculation = xlCalculationManual

Cuando hace clic en el botón de comando en la hoja de cálculo, Excel VBA establece el cálculo en manual.

2. Puede verificar esto haciendo clic en Archivo, Opciones, Fórmulas.

Opciones de cálculo

3. Ahora, cuando cambia el valor de la celda A1, el valor de la celda B1 no se vuelve a calcular.

Cálculo manual

Puede volver a calcular manualmente el libro presionando F9.

4. En la mayoría de las situaciones, establecerá el cálculo en automático nuevamente al final de su código. Simplemente agregue la siguiente línea de código para lograr esto.

Application.Calculation = xlCalculationAutomatic
Lea también: