Objeto de aplicaciones VBA Excel
La madre de todos los objetos en sí es Excel. Lo llamamos el objeto Application. El objeto de la aplicación da acceso a una gran cantidad de opciones relacionadas Excel.
WorksheetFunction
Puede utilizar la propiedad WorksheetFunction en Excel VBA para acceder a las funciones de Excel.
-
Por ejemplo, colocar una
enlace: / VBA-crear a un macro-comandos # botón [botón de comando]
en su hoja de trabajo y añadir la siguiente línea de código:
Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))
Al hacer clic en el botón de comando en la hoja de cálculo, Excel VBA calcula el promedio de los valores en la celda A1 y la celda A2 y deposita el resultado en la celda A3.
Nota: en lugar de Application.WorksheetFunction.Average, basta con utilizar WorksheetFunction.Average. Si nos fijamos en la barra de fórmulas, se puede ver que la fórmula en sí no se inserta en la celda A3. Para insertar la propia fórmula en la celda A3, utilice la siguiente línea de código:
Range("A3").Value = "=AVERAGE(A1:A2)"
ScreenUpdating
A veces, puede que le resulte útil para desactivar la actualización de pantalla (para evitar el parpadeo) durante la ejecución de código. Como resultado, el código se ejecutará más rápido.
-
Por ejemplo, colocar una
enlace: / VBA-crear a un macro-comandos # botón [botón de comando]
en su hoja de trabajo y añadir las siguientes líneas de código:
Dim i As Integer For i = 1 To 10000 Range("A1").Value = i Next i
Al hacer clic en el botón de comando en la hoja de cálculo, Excel VBA muestra cada valor de una pequeña fracción de segundo, y esto puede llevar algún tiempo.
-
Para acelerar el proceso, a actualizar 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, el código se ejecutará mucho más rápido y sólo se verá el resultado final (10000).
DisplayAlerts
Se puede indicar a Excel VBA para no mostrar alertas durante la ejecución de código.
-
Por ejemplo, colocar una
enlace: / VBA-crear a un macro-comandos # botón [botón de comando]
en su hoja de trabajo y añadir la siguiente línea de código:
ActiveWorkbook.Close
Al hacer clic en el botón de comando en la hoja de cálculo, Excel VBA cierra el archivo de Excel y le pide que guarde los cambios realizados.
-
Instruir Excel VBA no mostrar esta alerta durante la ejecución de código, actualizar el código de la siguiente manera.
Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True
Como resultado, Excel VBA cierra el archivo de Excel, sin preguntar si desea guardar los cambios realizados. Todos los cambios se pierden.
Cálculo
Por defecto, el cálculo se establece en automático. Como resultado, Excel vuelve a calcular el libro de forma automática cada vez que un valor que afecta a una fórmula cambios. Si el libro contiene muchas fórmulas complejas, se puede acelerar la macro mediante el establecimiento de cálculo a manual.
-
Por ejemplo, colocar una
enlace: / VBA-crear a un macro-comandos # botón [botón de comando]
en su hoja de trabajo y añadir la siguiente línea de código:
Application.Calculation = xlCalculationManual
Al hacer clic en el botón de comando en la hoja de cálculo, Excel VBA establece el cálculo en manual.
-
Usted puede verificar esto haciendo clic en Archivo, Opciones, Fórmulas.
-
Ahora, cuando se cambia el valor de la celda A1, el valor de la celda B1 ¿no vuelve a calcular.
Usted puede volver a calcular manualmente el libro presionando F9.
-
En la mayoría de situaciones, se establecerá el cálculo automático de nuevo al final de su código. Basta con añadir la siguiente línea de código para lograr este objetivo.
Application.Calculation = xlCalculationAutomatic