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


La plataforma 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 los principiantes le mostrarán 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 bucles básicos de VBA para que pueda comenzar a usar VBA en Excel, Word, Powerpoint, Outlook y OneNote .

Esto La guía de VBA usa la última versión de los productos de Microsoft Office. Si tiene una versión anterior, puede ver algunas pequeñas diferencias con respecto a las capturas de pantalla.

Cómo habilitar y usar el editor de VBA

en cualquiera de las oficinas productos utilizados en esta guía, puede notar que no tiene el menú Desarrollador referenciado. El menú de desarrollador solo está disponible en Excel, Word, Outlook y Powerpoint. OneNote no ofrece una herramienta para editar el código VBA desde el interior 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 Archivoy seleccione Opcionesen el menú de navegación izquierdo.
  • Verá una ventana emergente del menú Opciones. Seleccione Personalizar cintadel menú de navegación izquierdo.
  • 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.

    In_content_1 all: [300x250] / dfp: [640x360]->
    • 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 ve Desarrolladordisponible a la derecha, cambie la izquierda Elegir comandosdel menú desplegable a Todos los comandos. Busque Desarrolladorde la lista y seleccione Agregar>>en el centro para agregar ese menú a la cinta de opciones.
      • Seleccione Aceptarcuando haya terminado.
      • Una vez que el menú Desarrollador esté activo, puede volver a la ventana principal de la aplicación y seleccionar Desarrolladoren el menú superior.
      • Luego seleccione Ver códigodel grupo Controles en la cinta de opciones 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 próximas 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 la 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 u objetos de hoja. En Word, puede agregar código VBA a los documentos. En Powerpoint, solo para módulos.

            Por lo tanto, no se sorprenda por los diferentes menús. La estructura y la 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, primero mire la estructura y la sintaxis más comunes de VBA que puede usar cuando escribe código VBA.

            Dónde colocar el código de 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 trabajoy Activar, el código se ejecutará cada vez que se abra la hoja de trabajo.

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

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

            Declaraciones de VBA IF

            Un IF La declaración 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 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 pase o estado de error a otra celda.

            If Cells (2, 2)>75 Then Cells (2, 3) = "Pass" Else Cells (2, 3) = "Fail"

            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.

            If Cells (2, 2)>75 Then _
            Cells (2, 3) = "Pass" Else _
            Cells (2, 3) = "Fail"

            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 para 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 correspondiente. Por lo tanto, su código VBA primero tendría esta línea.

            Dim Rng As Range, cell As Range
            Dim rowCounter as Integer

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

            Establecer rng = Range ("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 Secuencia de comandos VBA, verá el da como resultado la hoja de cálculo real.

            VBA While Loops

            A While Loop 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 restante verdadero.

            Por ejemplo, podría escribir el mismo bucle FOR anterior, como un bucle 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: el límite de terminación rng.Count + 2es obligatorio porque el contador de filas comienza en 2 y debe terminar en la fila 7 donde terminan los datos. Sin embargo, el recuento del rango (B2: B7) es solo 6, y el ciclo While solo finalizará 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 rowCounter <= rng.Count + 1

            Puede solo incremente el recuento de rango (6) en 1, porque una vez que la variable rowCounter alcanza el final de los datos (fila 7), el ciclo puede finalizar.

            VBA Do While y Do Before Loops

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

            • El bucle Whilecomprueba si una condición es verdadera al comienzo del bucle.
            • El bucle Do-Whilecomprueba si una condición es verdadera después de ejecutar las declaraciones en el bucle.
            • El Do-Hasta el buclecomprueba si una condición sigue siendo falsa después de ejecutar el bucle.
            • En este caso, volvería a escribir t El bucle While arriba de la siguiente manera, como un bucle 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 lógica la comparación se lleva a cabo después de que se ejecutan todas las declaraciones (permitiendo que todas se ejecuten sin importar al menos una vez), entonces un bucle Do-While o Do-Hasta es la opción correcta.

              Declaraciones de casos seleccionados de VBA

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

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

              Puede hacerlo con la siguiente declaración de 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 VBA, se parece al siguiente.

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

              Conceptos básicos – Clase 1 – Programación del Excel con VBA

              Artículos Relacionados:


              29.01.2020