La mejor guía de VBA para principiantes

Hola geeks ! Aquí Pablo con un nuevo post para ustedes !
Espero que les sirva y nos vemos en el próximo tutorial

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.

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 pequeñas diferencias con 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, es posible que observe que no tiene el menú de desarrollador al que se hace referencia. El menú de desarrollador solo está disponible en Excel, Word, Outlook y Powerpoint. OneNote no ofrece una herramienta para editar 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á cómo hacer esto en nuestra próxima guía avanzada de VBA.

  • Para habilitar el menú Desarrollador en cualquier producto de oficina, seleccione el Expediente menú y seleccione Opciones en el menú de navegación de la izquierda.
  • Verá un menú emergente de Opciones. Seleccione Personalizar la cinta en el menú de navegación de la izquierda.

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 las que están actualmente disponibles o activadas.

  • 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.
  • Si no ves Desarrollador disponible a la derecha, luego cambie a la izquierda Elija comandos desde el menú desplegable hasta Todos los comandos. Encontrar Desarrollador de la lista y seleccione Agregar >> en el centro para agregar ese menú a la cinta.
  • Seleccione Okay cuando termines.
  • Una vez que el menú Desarrollador esté activo, puede volver a la ventana principal de la aplicación y seleccionar Desarrollador en el menú superior.
  • Luego seleccione Ver código desde el grupo Controles en la cinta para abrir la ventana del editor de VBA.
  • Esto abrirá la ventana del editor de VBA donde puede escribir el código que aprenderá en las siguientes secciones.
  • 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.

Esto se debe a que los objetos disponibles donde 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 al libro de trabajo u objetos de hoja. En Word, puede agregar código VBA a los documentos. En Powerpoint, solo para módulos.

Entonces, no se sorprenda 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 a través del código VBA, veamos primero la estructura y sintaxis de VBA más común 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.

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

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, asegúrese siempre de colocar su código VBA en el objeto y de 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 funciona 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 de «aprobado» y asignar el estado de aprobado o reprobado a otra celda.

Si las celdas (2, 2)> 75, entonces las celdas (2, 3) = «Pasa» Las demás celdas (2, 3) = «Fallan»

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) = «Fallo»

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, necesitaría usar la longitud de un rango y recorrer esa longitud por el número de filas que contienen datos.

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

Atenuar como rango, celda como rango
Dim rowCounter como entero

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

Establecer rng = Rango («B2: B7»)
rowCounter = 2

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

For Each cell In rng
   If cell.Value > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"

   rowCounter = rowCounter + 1

Next cell

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

Bucles while de VBA

Un bucle while también recorre una serie de declaraciones, al igual que el bucle FOR, pero la condición del bucle para continuar es una condición que permanece verdadera.

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

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

Nota la rng.Count + 2 Se requiere el límite de terminación 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 ciclo While solo terminará una vez que el contador sea MAYOR que el contador, por lo que el último valor de rowCounter debe ser 8 (o rng.Count + 2).

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

Mientras que rowCounter <= rng.Count + 1

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

VBA Do while y Do until bucles

Los bucles Do While y Do until son casi idénticos a los bucles While, pero funcionan de forma ligeramente diferente.

  • los Mientras bucle comprueba si una condición es verdadera al principio del ciclo.
  • los Bucle de ejecución comprueba si una condición es verdadera después de ejecutar las declaraciones en el ciclo.
  • los Bucle de hacer hasta que comprueba si una condición sigue siendo falsa después de ejecutar el ciclo.

En este caso, debería reescribir 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 desea asegurarse de que la comparación lógica se lleve a cabo después de que se ejecuten todas las declaraciones (permitiéndoles que se ejecuten sin importar qué al menos una vez), entonces un Do-While o bucle Do-until es la opción correcta.

Declaraciones de casos seleccionados de VBA

El último tipo de declaración lógica que deberá comprender para comenzar a estructurar su código VBA son las declaraciones de casos seleccionados.

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

Puede hacer esto con la siguiente declaración Seleccionar caso:

For Each cell In rng
   
   Select Case cell

   Case 95 To 100
      Cells(rowCounter, 3) = "A"
   Case 85 To 94
      Cells(rowCounter, 3) = "B"
   Case 75 To 84
      Cells(rowCounter, 3) = "C"
   Case 65 To 74
      Cells(rowCounter, 3) = "D"
   Case 0 To 64
      Cells(rowCounter, 3) = "F"
   End Select

   rowCounter = rowCounter + 1

Next cell

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

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

Deja un comentario