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

Hoja de trabajo Función

Puede usar 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 trabajo, Excel VBA calcula el promedio de los valores en la celda A1 y la celda A2 y coloca el resultado en la celda A3.

WorksheetFunction en Excel VBA

Nota: en lugar de Application.WorksheetFunction.Average, 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 sí 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 deshabilitar la actualización de la pantalla (para evitar el parpadeo) mientras se ejecuta 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 trabajo, Excel VBA muestra cada valor una pequeña fracción de segundo y esto puede llevar algo de 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 indicarle 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 indicarle 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 que realizó. Los cambios se pierden.

Cálculo

De forma predeterminada, 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 trabajo, 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, volverá a configurar el cálculo como automático al final de su código. Simplemente agregue la siguiente línea de código para lograr esto.

Application.Calculation = xlCalculationAutomatic

1/4 ¡Completado! Obtenga más información sobre el objeto de aplicación>
Siguiente capítulo: Controles ActiveX