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

Un tutorial para principiantes sobre cómo escribir macros VBA en Excel (y por qué debes aprender) / Productividad

Las macros de Excel pueden ahorrarle un montón de tiempo al automatizar los procesos de Excel que usa a menudo Cómo grabar una macro en Excel 2016 Cómo grabar una macro en Excel 2016 ¿Sabía que podría automatizar tareas repetitivas en Microsoft Excel utilizando macros? Le mostraremos cómo grabar una macro en Excel 2016 para ahorrar mucho tiempo. Lee mas . Pero las macros son bastante limitadas. Es fácil equivocarse con la herramienta de grabación, y el proceso de grabación es incómodo.

Usar VBA para crear macros te da mucho más poder. Puede decirle a Excel exactamente qué hacer y cómo hacerlo. También tienes acceso a muchas más funciones y capacidades. Si usa Excel con regularidad, vale la pena aprender a crear macros VBA.

Empezaremos con lo básico..

¿Qué es VBA??

VBA es Visual Basic para Aplicaciones, un lenguaje de programación que puede utilizar 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 descontinuó Visual Basic en el 2008, pero VBA aún está fuerte).

Afortunadamente para los no programadores, VBA es muy simple, y la interfaz que usas para editarlo ofrece mucha asistencia. Muchos de los comandos utilizarás sugerencias emergentes y completamientos automáticos, lo que te ayudará a que tu script funcione rápidamente.

Aún así, VBA toma un tiempo para acostumbrarse a.

Las ventajas de las macros VBA en Excel

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

En lugar de hacer clic en la hoja de cálculo y registrar esos clics, puede acceder a la gama completa de funciones y capacidades de Excel. Solo necesitas saber como 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 regular en mucho menos tiempo. Los resultados también serán más predecibles, como le está 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 se trabaja con muchas personas que necesitan hacer lo mismo en Excel..

Veamos una macro VBA simple 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 de VBA, consulte nuestro tutorial de VBA aquí):

Subventa de ventas () Dim Sum1 como moneda Dim Sum2 como moneda Dim Sum3 como moneda Dim Sum4 como moneda para cada celda en rango ("C2: C51") Cell.Activar si IsEmpty (Cell) luego salir para si ActiveCell.Offset (0, -1) = 1 Luego Sum1 = Sum1 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 2 Luego Sum2 = Sum2 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 3 Luego Sum3 = Sum3 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 4 Then Sum4 = Sum4 + Cell.Value End If Next Cell Range ("F2"). Value = Sum1 Range ("F3"). Value = Sum2 Range (" F4 "). Valor = Rango Sum3 (" F5 "). Valor = Sum4 End 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 inicio 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 las subs no pueden (si está familiarizado con otros lenguajes de programación, las subs son equivalentes a 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,” lo 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 “Suma 1.” 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 tratará con monedas, estamos usando el tipo de datos de moneda.

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

Comenzando un For Loop

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 sepa sobre el tiempo y para los bucles, pero ¿qué hace un bucle do-while? Lee mas . 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 itere a través de las celdas en el rango que especificamos. Hemos utilizado un objeto Range. Comprender las celdas de Excel frente a las funciones de rango en VBA. Comprender las celdas de Excel y las funciones de rango en VBA. El uso de las funciones Range y Cells en Excel puede resultar muy confuso. Aquí le mostramos cómo puede utilizarlos de maneras que probablemente nunca imaginó, con la ayuda de VBA Read More, 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 comience el ciclo desde el principio (comenzando con la siguiente celda).

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

¿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 y las macros simples son las claves de los superpoderes de Microsoft Excel. Incluso los que no son programadores pueden agregar fácilmente una funcionalidad impresionante a sus hojas de cálculo con los conceptos básicos virtuales para aplicaciones (VBA). ¡Evita estos errores de principiante de programación! Lee mas . Sin embargo, por el bien de la enseñanza, decidí usar un bucle For con un Exit.

Declaraciones si-entonces-más-si

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

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

En su mayor parte, probablemente puede adivinar qué hacen estas afirmaciones. Puede que no esté familiarizado con ActiveCell.Offset, sin embargo. “ActiveCell.Offset (0, -1)” le dice a Excel que mire la celda que es una columna a la izquierda de la celda activa.

En nuestro caso, eso le dice a Excel que consulte la columna de 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 pasa por 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 Ya sea que sea un experto experimentado o un principiante en hojas de cálculo, le recomendamos consultar esta guía de declaraciones IF en Excel. Leer más está satisfecho, completa la instrucción Then. Si no, se mueve al siguiente ElseIf. Si llega hasta el final y no se cumple ninguna de las condiciones, no tomará ninguna medida..

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

Escritura de valores celulares

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

Rango ("F2"). Valor = Rango Sum1 ("F3"). Valor = Rango Sum2 ("F4"). Valor = Rango Sum3 ("F5"). Valor = Suma4

Con “.Valor” y un signo igual, establecemos cada una de esas celdas al 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:

Juntando los bloques de construcción de VBA en Excel

Cuando miras por primera vez la macro VBA anterior, parece bastante compleja. Pero después de descomponerlo en sus partes constituyentes, la lógica se vuelve clara. Como cualquier lenguaje de scripting, lleva tiempo acostumbrarse a la sintaxis de VBA.

Pero con la práctica, desarrollará su vocabulario de 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 te quedas atascado, realizar una búsqueda en Google es una forma rápida de obtener respuestas a tus preguntas de VBA. Y la referencia de Excel VBA de Microsoft puede ser útil si está dispuesto a profundizar en él para obtener una respuesta técnica..

Una vez que se sienta cómodo con lo básico, 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 Un fanático de Microsoft, algo bueno que se puede decir acerca de los productos de MS Office, al menos, es lo fácil que es integrarlos entre sí ... Lea más y muestre la información de su PC. Cómo ver toda la información de su PC usando. una secuencia de comandos de VBA de Excel simple Cómo ver toda la información de su PC con una secuencia de comandos de VBA de Excel simple y 10 minutos de trabajo le brindarán información más detallada acerca de su computadora de la que nunca creyó posible. Suena demasiado bueno para ser verdad? Eso es Windows, si sabes cómo usarlo. Lee mas .

.