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

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

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





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





Empezaremos por 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 2008, pero VBA todavía es fuerte).

Afortunadamente para los no programadores, VBA es muy simple y la interfaz que usa para editarlo ofrece mucha ayuda. Muchos de los comandos que utilizará aparecerán sugerencias y finalizaciones automáticas, lo que le ayudará a que su secuencia de comandos funcione rápidamente.



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

Las ventajas de las macros VBA en Excel

Si VBA es más difícil que grabar una macro, ¿por qué lo usaría? La respuesta corta es que obtienes mucho más poder de las macros 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.

jugar juegos de ps3 en ps4

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á diciendo a Excel exactamente qué hacer. No hay ninguna ambigüedad.





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 trabaja con muchas personas que necesitan hacer las mismas cosas en Excel.

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

Un ejemplo de una macro de 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í ):

|_+_|

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 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', que le dice a Excel que hemos terminado con esta macro de VBA.

Declaración de variables

Todas las primeras líneas de código de nuestro script comienzan con 'Dim'. Dim es el comando de VBA para declarar una variable.

Entonces, '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 el lista completa en los documentos de ayuda de Microsoft .

Debido a que nuestra macro de VBA 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 Sum1. Cada variable que declare debe tener una declaración 'As' para indicarle a Excel su tipo.

Iniciar un bucle for

Los bucles son algunas de las cosas más poderosas que puede crear en cualquier lenguaje de programación. Si no está familiarizado con los bucles, consulte esta explicación de los bucles Do-While. En este ejemplo, usamos un bucle For, que también se trata en el artículo.

Así es como se ve el bucle:

|_+_|

Esto le dice a Excel que repita las celdas en el rango que especificamos. Hemos usado un Objeto de rango , 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.

'For Each' le dice a Excel que vamos a hacer algo con cada celda del 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 está vacío (celda), entonces salga para'.

¿Puedes adivinar lo que hace?

Nota: Estrictamente hablando, usar un bucle While puede haber sido una mejor opción . Sin embargo, por el bien de la enseñanza, decidí usar un bucle For con una salida.

cómo quitar una marca de agua de una foto

Declaraciones If-Then-Else

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

|_+_|

En su mayor parte, probablemente pueda adivinar qué 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, entonces 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. Etcétera.

Excel revisa todas estas declaraciones en orden. Si el sentencia condicional está satisfecho, completa la instrucción Then. Si no es así, pasa 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 ciclo le dice a Excel que revise cada celda en 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 celdas. Estas son las líneas que usamos para hacer eso:

|_+_|

Con '.Value' 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 que la macro de VBA está completa.

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

Juntando los bloques de construcción de VBA en Excel

Cuando mira por primera vez la macro de VBA anterior, parece bastante compleja. Pero después de dividirlo en sus partes constituyentes, la lógica se vuelve clara. Como cualquier lenguaje de secuencias de comandos, se necesita tiempo para 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 mucho más poder de lo que podría grabarlas.

Cuando te quedas atascado, ejecutar una búsqueda en Google es una forma rápida de obtener respuestas a tus preguntas de VBA. Y Referencia de Excel VBA de Microsoft puede ser útil si está dispuesto a examinarlo en busca de 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 y mostrar la información de su PC.

cómo transferir de una computadora a otra
Cuota Cuota Pío Correo electrónico He aquí por qué el FBI emitió una advertencia sobre el ransomware Hive

El FBI emitió una advertencia sobre una variedad de ransomware particularmente desagradable. He aquí por qué debe tener especial cuidado con el ransomware Hive.

Leer siguiente
Temas relacionados
  • Productividad
  • Hoja de cálculo
  • Microsoft Excel
  • Microsoft Office 2016
  • Macros
  • Tutoriales de codificación
Sobre el Autor Entonces Albright(506 Artículos publicados)

Dann es un consultor de marketing y estrategia de contenido que ayuda a las empresas a generar demanda y clientes potenciales. También escribe en un blog sobre estrategia y marketing de contenidos en dannalbright.com.

Más de Dann Albright

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse