¿qué es vba en excel? (básico a avanzado)

¿Qué es VBA?

VBA (Visual Basic para Aplicaciones) es un lenguaje de programación que permite automatizar casi todo en Excel. Con VBA, puede hacer referencia a objetos de Excel y utilizar las propiedades, métodos y eventos asociados con ellos. Por ejemplo, puede crear una tabla dinámica, insertar un gráfico y mostrar un cuadro de mensaje al usuario mediante una macro.

Lo loco es:

Para todas las tareas que realiza manualmente en minutos, VBA puede realizarlas en segundos, con un solo clic, con la misma precisión. Incluso usted puede escribir códigos VBA que se pueden ejecutar automáticamente cuando abre un documento, libro de trabajo o incluso en un momento específico.

Déjame mostrarte un ejemplo concreto:

Cada mañana, cuando voy a la oficina, lo primero que tengo que hacer es crear una tabla dinámica para las ventas del mes hasta la fecha y presentársela a mi jefe. Esto incluye los mismos pasos, todos los días. Pero cuando me di cuenta de que podía usar VBA para crear una tabla dinámica e insertarla con solo un clic, me ahorré 5 minutos al día.

Códigos de macro para crear una tabla dinámica

Así es como funciona VBA

VBA es un lenguaje orientado a objetos y, como lenguaje orientado a objetos, en VBA estructuramos nuestros códigos de manera que usamos objetos y luego definimos sus propiedades.

En términos simples, primero definimos el objeto y luego la actividad que queremos realizar. Hay objetos, colecciones, métodos y propiedades que puedes usar en VBA para escribir tu código.

>No te pierdas esto<

Digamos que quieres decirle a alguien que abra una caja. Las palabras que usarías serían «Abre la caja». Es un inglés sencillo, ¿no? Pero cuando se trata de VBA y de escribir una macro, será:

 Box.Open

Como puede ver, el código anterior comienza con el cuadro que es nuestro objeto aquí, luego usamos el método «Abrir» para esto. Seamos un poco más específicos, digamos si desea abrir el cuadro de color ROJO. Y para ello el código será:

 Boxes(“Red”).Open

En el código anterior, las cajas son la colección y abrir es el método. Si tiene varias casillas, definimos una casilla específica aquí. Aquí hay otra manera:

 Box(“Red”).Unlock = True

En el código anterior, los cuadros son nuevamente la colección y Desbloquear es la propiedad establecida en VERDADERO.

¿Para qué se utiliza VBA en Excel?

En Excel puedes usar VBA para diferentes cosas. Aquí están algunas:

  • Ingresar datos : puede ingresar datos en una celda, un rango de celdas. También puedes copiar y pegar datos de una sección a otra.
  • Automatización de tareas : puede automatizar tareas que requieren que dedique mucho tiempo. El mejor ejemplo que puedo dar es el uso de una macro para crear una tabla dinámica.
  • Cree una función de Excel personalizada : con VBA, también puede crear una función personalizada definida por el usuario y usarla en la hoja de trabajo.
  • Crear complementos : en Excel, puede convertir sus códigos VBA en complementos y compartirlos con otros también.
  • Integrar con otras aplicaciones de Microsoft : también puede integrar Excel con otras aplicaciones de Microsoft. Por ejemplo, puede ingresar datos en un archivo de texto.

Conceptos básicos de programación en Excel

1. Procedimiento

Un procedimiento en VBA es un conjunto de códigos o una sola línea de código que realiza una actividad específica.

  1. SUB : El procedimiento Sub puede realizar acciones pero no devuelve un valor (pero puedes usar un objeto para obtener ese valor).
  2. Función : utilizando el procedimiento Función, usted crea su función, que puede usar en la hoja de cálculo u otros procedimientos SUB y FUNCIÓN (consulte esto: Función VBA ).

2. Variables y constantes

Necesita variables y constantes para utilizar valores varias veces en el código.

  • Variable : Una variable puede almacenar un valor, tiene un nombre, debes definir su tipo de datos y puedes modificar el valor que almacena. Como sugiere el nombre, «VARIABLE» no tiene un valor fijo. Es como una caja de almacenamiento que se almacena en el sistema.
  • Constante : una constante también puede almacenar un valor, pero no puede cambiar el valor mientras ejecuta el código.

3. Tipos de datos

Debe declarar el tipo de datos para VARIABLES y CONSTANTES.

define data type

Cuando especifica el tipo de datos para una variable o constante, garantiza la validez de sus datos. Si omite el tipo de datos, VBA aplica el tipo de datos Variante a su variable (este es el más flexible), VBA no adivinará cuál debería ser el tipo de datos.

Consejo: opción VBA explícita

4. Objetos, propiedades y métodos.

Visual Basic para Aplicaciones es un lenguaje orientado a objetos, y para sacarle el máximo provecho; necesitas entender los objetos de Excel.

El libro que usa en Excel contiene diferentes objetos y, con todos estos objetos, hay varias propiedades a las que puede acceder y métodos que puede usar.

5. Eventos

Cada vez que haces algo en Excel, es un evento: ingresa un valor en una celda, inserta una nueva hoja de trabajo o inserta un gráfico. A continuación se muestra la clasificación de eventos según objetos:

  1. Eventos de aplicación: estos eventos están asociados con la propia aplicación de Excel.
  2. Eventos del libro de trabajo: estos eventos están asociados con acciones que ocurren en un libro de trabajo.
  3. Eventos de la hoja de trabajo: estos eventos están asociados con la acción que ocurre en una hoja de trabajo.
  4. Eventos de gráficos: estos eventos están asociados con hojas de gráficos (que son diferentes de las hojas de trabajo).
  5. Eventos de formulario de usuario: estos eventos están asociados con la acción que ocurre con un formulario de usuario.
  6. Eventos OnTime: Los eventos OnTime son aquellos que pueden activar código en un momento específico.
  7. Eventos OnKey: Los eventos OnKey son aquellos que pueden activar un código cuando se presiona una tecla en particular.

6.Alcance

El objeto de rango es la forma más común y popular de referirse a un rango en sus códigos VBA. Debes consultar la dirección del celular, déjame decirte la sintaxis.

 Worksheets(“Sheet1”).Range(“A1”)

7.Condiciones

Como cualquier otro lenguaje de programación, también puedes escribir códigos para probar condiciones en VBA. Te permite hacer esto de dos maneras diferentes.

  • IF THEN‌ ELSE‌ : Esta es una declaración IF que puede usar para probar una condición y luego ejecutar una línea de código si esa condición es VERDADERA. También puedes escribir condiciones de anidación con
  • SELEC‌T‌ CASE : en el caso seleccionado, puede especificar una condición y luego diferentes casos de resultados de prueba para ejecutar diferentes líneas de código. Es un poco más estructurado que la declaración IF.

8. Bucles VBA

Puede escribir códigos que puedan repetir una y otra vez una acción en VBA, y hay varias formas de escribir código como este.

  • Para Siguiente : La mejor opción para usar Para Siguiente es cuando desea repetir un conjunto de acciones un número fijo de veces.
  • Para cada siguiente : es perfecto para usar cuando desea iterar sobre un grupo de objetos de una colección de objetos.
  • Do While Loop: La idea simple detrás del Do While Loop es realizar una actividad mientras una condición sea verdadera.
  • Bucle Do Until: en el bucle Do Until, VBA ejecuta un bucle y continúa ejecutándolo si la condición es FALSA.

9. Cuadro de entrada y cuadro de mensaje.

  • Cuadro de entrada : El cuadro de entrada es una función que muestra un cuadro de entrada al usuario y recopila una respuesta.
  • Cuadro de mensaje : el cuadro de mensaje le ayuda a mostrar un mensaje al usuario, pero tiene la opción de agregar botones al cuadro de mensaje para obtener la respuesta del usuario.

10. Errores

Excel tiene mala suerte cuando se trata de errores de programación y hay que solucionarlos pase lo que pase.

  1. Errores de sintaxis : son como errores tipográficos que se cometen al escribir códigos, pero VBA puede ayudarle informándolos.
  2. Errores de compilación: ocurren cuando escribe código para realizar una actividad, pero esa actividad no es válida.
  3. Errores de tiempo de ejecución : se produce un error de EJECUCIÓN durante la ejecución del código. Detiene el código y muestra el cuadro de diálogo de error.
  4. Error lógico : no es un error, sino un error al escribir el código y, a veces, puede causarle problemas para encontrarlo y solucionarlo.

Escribir una macro (programa VBA) en Excel

Creo firmemente que inicialmente, cuando alguien comienza a programar en Excel, ÉL/ELLA debería escribir más y más códigos desde cero. Cuanto más códigos escriba desde cero, más comprenderá cómo funciona VBA.

Pero deberías empezar escribiendo códigos simples en lugar de saltar a códigos complejos. Por eso no quiero que pienses en nada complejo en este momento.

Incluso puedes escribir código de macro para crear una tabla dinámica, pero por ahora no quiero que pienses tan lejos. Pensemos en una actividad que desea realizar en su hoja de cálculo y puede escribir código para ella.

  1. Vaya a la pestaña Desarrollador y abra el Editor de Visual Basic desde el botón «Visual Basic».
    visual-basic-button
  2. Después de eso, inserte un nuevo módulo desde la «Ventana del proyecto» (Clic derecho ➢ Insertar ➢ Módulo).
    insert-a-new-module
  3. Después de eso, vaya a la ventana de código y cree una macro con el nombre «Ingresar listo» (creamos un procedimiento SUB), como lo tengo a continuación.
    code-window
  4. A partir de ahí, debes escribir el código del que acabamos de hablar anteriormente. Espere un segundo y piense así: debe especificar la celda en la que desea insertar el valor y luego el valor que desea ingresar.
  5. Ingrese la referencia de la celda, y para esto necesita usar el objeto RANGE y especificar la dirección de la celda allí, como se muestra a continuación:
    cell-reference-range-object
  6. Después de eso, ingrese un punto y, en el momento en que agregue un punto, tendrá una lista de propiedades que puede configurar y actividades que puede realizar con el rango.
    enter-a-dot
  7. Desde aquí debe seleccionar la propiedad «Valor» y establecer el texto que desea insertar en la celda «A1» y al hacerlo, su código se verá similar a lo siguiente.
    select-value
  8. Finalmente, encima de la línea de código, ingrese el texto (“este código ingresa el valor “Listo” en la celda A5). Este es un comentario de VBA que puede insertar para definir la línea de código que escribió.
    enter-the-text-above-line-code
 Sub Enter_Done() 'this code enters the value “Done” in the cell A5 Range("A1").Value = "Done" End Sub

Entendamos esto…

Puede dividir este código en dos partes diferentes.

  • En la PRIMERA parte, especificamos la dirección de la celda usando el objeto RANGE. Y, para hacer referencia a una celda usando un objeto de rango, debe encerrar la dirección de la celda entre comillas dobles (también puede usar corchetes).
  • En la SEGUNDA parte, especificamos el valor a ingresar en la celda. Lo que ha hecho es establecer la propiedad de valor para la celda A5 usando «.Value». Después de eso, lo siguiente que especificó es el valor relativo a la propiedad de valor . Siempre que defina un valor (si es texto), debe encerrarlo entre comillas dobles.

La mejor manera de aprender VBA

Aquí he enumerado algunos de los tutoriales más sorprendentes (sin ninguna secuencia en particular) que pueden ayudarlo a aprender VBA en poco tiempo.

11. Funciones

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *