La mejor guía de VBA (para principiantes) que necesitarás - 3 - diciembre 22, 2022

La mejor guía de VBA (para principiantes) que necesitarás

La plataforma de programación VBA que se ejecuta en casi todos los productos de Microsoft Office es una de las herramientas más poderosas que cualquiera puede usar para mejorar el uso de esos productos.

Esta guía de VBA para principiantes le mostrará cómo agregar el menú Desarrollador a su aplicación de Office, cómo ingresar a la ventana del editor de VBA y cómo funcionan las declaraciones y los bucles básicos de VBA para que pueda comenzar a usar VBA en Excel, Word, Powerpoint, Outlook y OneNote.

La mejor guía de VBA (para principiantes) que necesitarás - 5 - diciembre 22, 2022

Esta guía de VBA utiliza la última versión de los productos de Microsoft Office. Si tiene una versión anterior, es posible que vea algunas ligeras diferencias con respecto a las capturas de pantalla.

¿Cómo habilitar y usar el editor de VBA?

En cualquiera de los productos de Office utilizados en esta guía, puede notar que no tiene el menú Desarrollador al que se hace referencia. El menú para desarrolladores solo está disponible en Excel, Word, Outlook y Powerpoint. OneNote no ofrece una herramienta para editar el código VBA desde dentro de la aplicación, pero aún puede hacer referencia a la API de OneNote para interactuar con OneNote desde otros programas de Office.

Aprenderá a hacer esto en nuestra próxima guía avanzada de VBA.

  • Para habilitar el menú Desarrollador en cualquier producto de oficina, seleccione el menú Archivo y seleccione Opciones en el menú de navegación izquierdo.
  • Verá una ventana emergente del menú Opciones. Seleccione Personalizar cinta en el menú de navegación de la izquierda.
La mejor guía de VBA (para principiantes) que necesitarás - 9 - diciembre 22, 2022

La lista de la izquierda incluye todos los menús y comandos de menú disponibles en esa aplicación de Office. La lista de la derecha son los que están actualmente disponibles o activados.

  • Debería ver Desarrollador en la lista de la derecha, pero no se activará. Simplemente seleccione la casilla de verificación para activar el menú Desarrollador.
La mejor guía de VBA (para principiantes) que necesitarás - 11 - diciembre 22, 2022
  • Si no ve Desarrollador disponible a la derecha, cambie el menú desplegable Elegir comandos de la izquierda a Todos los comandos. Busque Desarrollador en la lista y seleccione Agregar>> en el centro para agregar ese menú a la cinta.
  • Seleccione Aceptar cuando haya terminado.
  • Una vez que el menú Desarrollador esté activo, puede volver a la ventana principal de su aplicación y seleccionar Desarrollador en el menú superior.
  • Luego seleccione Ver código del grupo Controles en la cinta para abrir la ventana del editor de VBA.
La mejor guía de VBA (para principiantes) que necesitarás - 13 - diciembre 22, 2022
  • Esto abrirá la ventana del editor de VBA donde puede escribir el código que aprenderá en las próximas secciones.
La mejor guía de VBA (para principiantes) que necesitarás - 15 - diciembre 22, 2022
  • Intente agregar el menú Desarrollador a algunas de las aplicaciones de Office que usa todos los días. Una vez que se sienta cómodo abriendo la ventana del editor de VBA, continúe con la siguiente sección de esta guía.

Consejos generales de programación de VBA para principiantes

Notará que cuando se abre el editor de VBA, las opciones de navegación en el panel izquierdo se ven diferentes de una aplicación de Office a otra.

La mejor guía de VBA (para principiantes) que necesitarás - 17 - diciembre 22, 2022

Esto se debe a que los objetos disponibles en los que puede colocar el código VBA dependen de los objetos que haya en la aplicación. Por ejemplo, en Excel, puede agregar código VBA a objetos de libro o de hoja. En Word, puede agregar código VBA a los documentos. En Powerpoint, solo a módulos.

Así que no te sorprendas con los diferentes menús. La estructura y sintaxis del código VBA es la misma en todas las aplicaciones. La única diferencia son los objetos a los que puede hacer referencia y las acciones que puede realizar en esos objetos a través del código VBA.

Antes de sumergirnos en los diferentes objetos y acciones que puede realizar en ellos a través del código VBA, veamos primero la estructura y sintaxis VBA más comunes que puede usar cuando escribe código VBA.

Dónde poner el código VBA

Cuando esté en el editor de VBA, debe usar los dos cuadros desplegables en la parte superior de la ventana de edición para elegir a qué objeto desea adjuntar el código y cuándo desea que se ejecute el código.

Por ejemplo, en Excel, si elige Hoja de cálculo y Activar, el código se ejecutará cada vez que se abra la hoja de cálculo.

La mejor guía de VBA (para principiantes) que necesitarás - 19 - diciembre 22, 2022

Otras acciones de la hoja de trabajo que puede usar para activar su código VBA incluyen cuándo cambia la hoja de trabajo, cuándo está cerrada (desactivada), cuándo se ejecuta el cálculo de la hoja de trabajo y más.

Cuando agregue código VBA en el editor, siempre asegúrese de colocar su código VBA en el objeto y usar la acción correcta que desea usar para activar ese código.

Declaraciones IF de VBA

Una instrucción IF funciona en VBA al igual que en cualquier otro lenguaje de programación.

La primera parte de la declaración IF analiza si una condición o un conjunto de condiciones es verdadera. Estas condiciones se pueden unir mediante un operador AND u OR para vincularlas.

Un ejemplo sería verificar si una calificación en una hoja de cálculo está por encima o por debajo de una calificación aprobatoria y asignar el estado de aprobado o reprobado a otra celda.

  • Si Celdas(2, 2) > 75 Entonces Celdas(2, 3) = Pasar De lo contrario Celdas(2, 3) = Fallar

Si no desea la declaración completa en una sola línea, puede dividirla en varias líneas agregando un símbolo _ al final de las líneas.

  • Si Celdas(2, 2) > 75 Entonces _
  • Celdas (2, 3) = Pasar Else _
  • Celdas (2, 3) = Error

El uso de esta técnica a menudo puede hacer que el código sea mucho más fácil de leer y depurar.

VBA para los siguientes bucles

Las declaraciones IF son excelentes para comparaciones individuales, como el ejemplo anterior de mirar una sola celda. Pero, ¿qué sucede si desea recorrer un rango completo de celdas y hacer la misma instrucción IF en cada una?

En este caso, necesitaría un bucle FOR.

Para hacer esto, debe usar la longitud de un rango y recorrer esa longitud por la cantidad de filas que contienen datos.

Para hacer esto, debe definir el rango y las variables de celda, y recorrerlas. También deberá definir un contador para que pueda enviar los resultados a la fila adecuada. Entonces su código VBA primero tendría esta línea.

  • Dim rng como rango, celda como rango
  • Atenuar contador de filas como entero

Defina el tamaño del rango de la siguiente manera.

  • Establecer rng = Rango (B2: B7)
  • Contador de filas = 2

Finalmente, puede crear su ciclo FOR para recorrer cada celda en ese rango y hacer la comparación.

 Para cada celda en rng If cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Siguiente celda

Una vez que se ejecuta este script de VBA, verá los resultados en la hoja de cálculo real.

La mejor guía de VBA (para principiantes) que necesitarás - 21 - diciembre 22, 2022

Ciclos while de VBA

Un ciclo while también realiza un ciclo a través de una serie de declaraciones, al igual que el ciclo FOR, pero la condición del ciclo para continuar es una condición que permanece verdadera.

Por ejemplo, podría escribir el mismo bucle FOR anterior, como un bucle WHILE, simplemente usando la variable rowCounter de la siguiente manera.

 Mientras filaContador < rng.Count + 2 If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend

Nota: se requiere el límite de terminación rng.Count + 2 porque el contador de filas comienza en 2 y debe terminar en la fila 7 donde terminan los datos. Sin embargo, el conteo del rango (B2:B7) es solo 6, y el bucle While solo terminará una vez que el contador sea mayor que el contador, por lo que el último valor del contador de fila debe ser 8 (o rng.Count + 2).

También puede configurar el ciclo While de la siguiente manera:

  • Mientras filaContador <= rng.Cuenta + 1

Solo puede incrementar el conteo de rango (6) en 1, porque una vez que la variable rowCounter llega al final de los datos (fila 7), el ciclo puede terminar.

Bucles de VBA Do While y Do Until

Los bucles Do While y Do Until son casi idénticos a los bucles While, pero funcionan ligeramente diferentes.

  • El bucle While comprueba si una condición es verdadera al principio del bucle.
  • El bucle Do-While comprueba si una condición es verdadera después de ejecutar las declaraciones en el bucle.
  • El bucle Do-Until comprueba si una condición sigue siendo falsa después de ejecutar el bucle.

En este caso, reescribiría el ciclo While anterior de la siguiente manera, como un ciclo Do-While.

 Do If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2

En este caso, la lógica no cambia mucho, pero si quiere asegurarse de que la comparación lógica se lleve a cabo después de que se ejecuten todas las sentencias (permitiendo que todas se ejecuten al menos una vez), entonces un Do-While o Do -Until loop es la opción correcta.

Declaraciones de casos seleccionados de VBA

El tipo final de declaración lógica que deberá comprender para comenzar a estructurar su código VBA son las declaraciones Select Case.

Dado el ejemplo anterior, supongamos que desea tener un método de calificación que no sea solo aprobado. En su lugar, desea asignar una calificación de letra de la A a la F.

Podría hacer esto con la siguiente instrucción Select Case:

 Para cada celda en rng Seleccionar caso celda Caso 95 a 100 Celdas (contador de filas, 3) = "A" Caso 85 a 94 Celdas (contador de filas, 3) = "B" Caso 75 a 84 Celdas (contador de filas, 3) = "C" Caso 65 a 74 celdas (contador de filas, 3) = "D" Caso 0 a 64 celdas (contador de filas, 3) = "F" Fin Seleccionar contador de filas = contador de filas + 1 Siguiente celda

La hoja de cálculo resultante después de ejecutar este script de VBA se parece a la siguiente.

La mejor guía de VBA (para principiantes) que necesitarás - 23 - diciembre 22, 2022

Ahora ya sabe todo lo que necesita saber para comenzar a usar VBA en sus aplicaciones de Microsoft Office.