Un tutorial para principiantes sobre cómo escribir macros de VBA en Excel (y por qué debería aprender)

  • Harry James
  • 0
  • 4542
  • 430
Anuncio

Las macros de Excel pueden ahorrarle mucho tiempo al automatizar los procesos de Excel que usa con frecuencia. Pero las macros son en realidad bastante limitadas. Es fácil cometer un error con la herramienta de grabación, y el proceso de grabación es incómodo..

El uso de VBA para crear macros le brinda mucha más potencia. Puede decirle a Excel exactamente qué hacer y cómo hacerlo. También obtienes acceso a muchas más funciones y capacidades. Si usa Excel regularmente, vale la pena aprender a crear macros de VBA.

Comenzaremos con lo básico.

¿Qué es el VBA??

VBA es Visual Basic para aplicaciones, un lenguaje de programación que puedes usar en muchas aplicaciones de Microsoft. Visual Basic es un lenguaje de programación y VBA es la versión específica de la aplicación. (Microsoft suspendió Visual Basic en 2008, pero VBA sigue siendo fuerte).

Afortunadamente para los que no son programadores, VBA es muy simple, y la interfaz que usas para editarlo ofrece mucha ayuda. Muchos de los comandos que usará sugerencias emergentes y finalizaciones automáticas, lo que le ayudará a que su script funcione rápidamente.

Aún así, VBA tarda un tiempo en acostumbrarse.

Las ventajas de las macros de VBA en Excel

Si VBA es más difícil que grabar una macro, ¿por qué lo usarías? La respuesta corta es que obtienes mucha más potencia de las macros de VBA.

En lugar de hacer clic en su hoja de cálculo y registrar esos clics, puede acceder a la gama completa de funciones y capacidades de Excel. Solo necesitas saber cómo usarlos.

Y una vez que se sienta más cómodo con VBA, puede hacer todas las cosas que podría hacer en una macro normal en mucho menos tiempo. Los resultados también serán más predecibles, como le estás diciendo a Excel exactamente qué hacer. No hay ambigüedad en absoluto.

Una vez que haya creado su macro VBA, es fácil guardarla y compartirla para que cualquier otra persona pueda aprovecharla. Esto es especialmente útil cuando trabajas con muchas personas que necesitan hacer lo mismo en Excel.

Veamos una simple macro VBA para ver cómo funciona..

Un ejemplo de una macro VBA en Excel

Veamos una macro simple. Nuestra hoja de cálculo contiene los nombres de los empleados, el número de la tienda donde trabajan los empleados y sus ventas trimestrales..

Esta macro agregará las ventas trimestrales de cada tienda y escribirá esos totales en las celdas de la hoja de cálculo (si no está seguro de cómo acceder al cuadro de diálogo VBA, consulte nuestro tutorial de VBA aquí):

Sub StoreSales () Dim Sum1 como moneda Dim Sum2 como moneda Dim Sum3 como moneda Dim Sum4 como moneda para cada celda del rango ("C2: C51") Celda. Active If IsEmpty (Cell) Luego salga para If ActiveCell.Offset (0, -1) = 1 Entonces Sum1 = Sum1 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 2 Then Sum2 = Sum2 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 3 Entonces Sum3 = Sum3 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 4 Entonces Sum4 = Sum4 + Cell.Value End If Next Cell Range ("F2"). Value = Sum1 Range ("F3"). Value = Sum2 Range (" F4 "). Valor = Rango Sum3 (" F5 "). Valor = Sum4 Fin Sub

Esto puede parecer largo y complicado, pero lo desglosaremos para que pueda ver los elementos individuales y aprender un poco sobre los conceptos básicos de VBA.

Declarando el Sub

Al comienzo del módulo, tenemos “Sub StoreSales ()”. Esto define un nuevo sub llamado StoreSales.

También puede definir funciones: la diferencia es que las funciones pueden devolver valores y los subs no pueden (si está familiarizado con otros lenguajes de programación, los subs son el equivalente de los métodos). En este caso, no necesitamos devolver un valor, por lo que estamos usando un sub.

Al final del módulo, tenemos “End Sub,” que le dice a Excel que hemos terminado con esta macro VBA.

Declarando Variables

Las primeras líneas de código en nuestro script comienzan con “Oscuro.” Dim es el comando de VBA para declarar una variable.

Asi que “Dim Sum1” crea una nueva variable llamada “Sum1.” Sin embargo, necesitamos decirle a Excel qué tipo de variable es esta. Necesitamos elegir un tipo de datos. Hay muchos tipos de datos diferentes en VBA: puede encontrar la lista completa en los documentos de ayuda de Microsoft.

Debido a que nuestra macro VBA va a tratar con monedas, estamos usando el tipo de datos Moneda.

La declaración “Dim Sum1 como moneda” le dice a Excel que cree una nueva variable de Moneda llamada Suma1. Cada variable que declares debe tener un “Como” declaración para decirle a Excel su tipo.

Iniciar un bucle for

Los bucles son algunas de las cosas más poderosas que puedes crear en cualquier lenguaje de programación. Si no está familiarizado con los bucles, consulte esta explicación de los bucles Do-While Cómo funcionan los bucles Do-While en la programación de computadoras Cómo funcionan los bucles Do-While en la programación de computadoras Los bucles son uno de los primeros tipos de control que aprenderá en la programación . Probablemente conozca los bucles while y for, pero ¿qué logra un bucle do-while? . En este ejemplo, estamos usando un bucle For, que también se trata en el artículo.

Así es como se ve el bucle:

Para cada celda en el rango ("C2: C51") [un montón de cosas] Siguiente celda

Esto le dice a Excel que recorra las celdas en el rango que especificamos. Hemos utilizado un objeto Range Entender las celdas de Excel frente a las funciones de rango en VBA Entender las celdas de Excel frente a las funciones de rango en VBA Usar las funciones de rango y celdas en Excel puede ser muy confuso. Aquí le mostramos cómo puede usarlos de una manera que probablemente nunca imaginó, con la ayuda de VBA, que es un tipo específico de objeto en VBA. Cuando lo usamos de esta manera-Range (“C2: C51”) -le dice a Excel que estamos interesados ​​en esas 50 celdas.

“Para cada” le dice a Excel que vamos a hacer algo con cada celda en el rango. “Siguiente celda” viene después de todo lo que queremos hacer, y le dice a Excel que inicie el ciclo desde el principio (comenzando con la siguiente celda).

También tenemos esta declaración: “Si IsEmpty (Cell), salga por.”

¿Puedes adivinar lo que hace??

Nota: Estrictamente hablando, usar un bucle While puede haber sido una mejor opción 4 errores que puede evitar al programar macros de Excel con VBA 4 errores que puede evitar al programar macros de Excel con VBA El código simple y las macros son las claves de los superpoderes de Microsoft Excel. Incluso los no programadores pueden agregar fácilmente una funcionalidad impresionante a sus hojas de cálculo con Virtual Basics for Applications (VBA). ¡Solo evite estos errores de programación para principiantes! . Sin embargo, por el bien de la enseñanza, decidí usar un bucle For con una salida.

Declaraciones If-Then-Else

El núcleo de esta macro particular está en las declaraciones If-Then-Else. Aquí está nuestra secuencia de declaraciones condicionales:

Si ActiveCell.Offset (0, -1) = 1 Entonces Sum1 = Sum1 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 2 Entonces Sum2 = Sum2 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 3 Entonces Sum3 = Sum3 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 4 Entonces Sum4 = Sum4 + Cell.Value End If

En su mayor parte, probablemente pueda adivinar lo que hacen estas declaraciones. Sin embargo, es posible que no esté familiarizado con ActiveCell.Offset. “ActiveCell.Offset (0, -1)” le dice a Excel que mire la celda que está una columna a la izquierda de la celda activa.

En nuestro caso, eso le dice a Excel que consulte la columna del número de tienda. Si Excel encuentra un 1 en esta columna, toma el contenido de la celda activa y lo agrega a Sum1. Si encuentra un 2, agrega el contenido de la celda activa a Sum2. Y así.

Excel revisa todas estas declaraciones en orden. Si la declaración condicional Cómo usar declaraciones IF en Microsoft Excel Cómo usar declaraciones IF en Microsoft Excel Si usted es un experto experimentado o un principiante en hojas de cálculo, querrá consultar esta guía de declaraciones IF en Excel. está satisfecho, completa la instrucción Then. Si no, se mueve al siguiente ElseIf. Si llega hasta el final y ninguna de las condiciones se ha cumplido, no tomará ninguna medida..

La combinación del bucle y los condicionales es lo que impulsa esta macro. El ciclo le dice a Excel que pase por cada celda de la selección, y los condicionales le dicen qué hacer con esa celda.

Escribir valores de celda

Finalmente, podemos escribir los resultados de nuestros cálculos en las celdas. Aquí están las líneas que usamos para hacer eso:

Rango ("F2"). Valor = Suma1 Rango ("F3"). Valor = Suma2 Rango ("F4"). Valor = Suma3 Rango ("F5"). Valor = Suma4

Con “.Valor” y un signo igual, establecemos cada una de esas celdas en el valor de una de nuestras variables.

¡Y eso es! Le decimos a Excel que hemos terminado de escribir este Sub con “End Sub,” y la macro VBA está completa.

Cuando ejecutamos la macro con el Macros botón en el Desarrollador pestaña, obtenemos nuestras sumas:

Armar los componentes básicos de VBA en Excel

Cuando mira por primera vez la macro VBA anterior, parece bastante compleja. Pero después de dividirlo en sus partes constituyentes, la lógica se vuelve clara. Al igual que cualquier lenguaje de secuencias de comandos, lleva tiempo acostumbrarse a la sintaxis de VBA.

Pero con la práctica, desarrollará su vocabulario VBA y podrá escribir macros más rápido, con mayor precisión y con mucha más potencia de la que podría grabar..

Cuando se atasca, ejecutar una búsqueda en Google es una forma rápida de obtener respuestas a sus preguntas de VBA. Y la referencia de Excel VBA de Microsoft puede ser útil si está dispuesto a buscar una respuesta técnica.

Una vez que se sienta cómodo con los conceptos básicos, puede comenzar a usar VBA para cosas como enviar correos electrónicos desde Excel, exportar tareas de Outlook Cómo exportar sus tareas de Outlook a Excel con VBA Cómo exportar sus tareas de Outlook a Excel con VBA Ya sea que esté o no Como fanático de Microsoft, una cosa buena que se puede decir sobre los productos de MS Office, al menos, es lo fácil que es integrarlos entre sí ... y mostrar la información de su PC Cómo ver toda la información de su PC usando un simple Excel VBA Script Cómo ver toda la información de su PC Usando un simple Excel VBA Script Excel y 10 minutos de trabajo le brindarán información más detallada sobre su computadora de la que nunca creyó posible. Suena demasiado bueno para ser verdad? Eso es Windows, si sabes cómo usarlo. .




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.