Si alguna vez ha usado macros en Excel, ha usado Visual Basic para aplicaciones (VBA). VBA es un código de programación legible por humanos (y editable) que se genera cuando se graba una macro. Cuando ejecuta una macro, es este código el que Excel lee para reproducir sus acciones.

La siguiente es una serie de preguntas frecuentes sobre VBA, con respuestas tanto para principiantes en macros de Excel como para programadores experimentados.

¿Para qué se usa VBA en Excel?

VBA se usa para escribir macros, que automatizan tareas simples y complejas en Excel.

Los usuarios de Microsoft Excel a menudo se encontrarán repitiendo la misma serie de tareas una y otra vez. A veces, se trata de tareas menores, como copiar y pegar subconjuntos de datos en diferentes hojas, y, a veces, las tareas son más complejas, como cargar datos en un sitio web. Con VBA, las macros se pueden programar para automatizar tareas como estas, convirtiendo una serie de operaciones manuales en un solo clic de botón.

¿Cómo empiezo con el VBA en Excel?

La forma más sencilla de comenzar con las macros es grabarlas con la Grabadora de macros integrada en Excel. La grabadora de macros genera código VBA que puede leer y editar, lo que le brinda un trampolín para aprender a codificar sus propios macros desde cero.

¿Cómo puedo acceder al código VBA?

El editor de VBA se puede abrir en cualquier momento presionando el atajo de teclado ALT+F11. Desde aquí, se puede acceder al código de todos los libros abiertos.

Puede hacer doble clic en cualquier libro de trabajo, hoja u objeto de módulo en la ventana Proyecto para mostrar el código VBA que contiene. Las macros grabadas siempre aparecerán en módulos, que es donde normalmente también querrá escribir sus propias macros.

¿Qué puede hacer VBA?

1. En primer lugar: si hay algo que puede hacer en Excel, puede escribir código VBA para hacer lo mismo. Si aprende los comandos (utilizando la grabadora de macros o los recursos en línea), puede encadenar varias acciones en una sola macro.

2. Segundo: puede usar VBA para escribir funciones definidas por el usuario para usar en fórmulas de hojas de cálculo, como la función “=SUM()”, por ejemplo. Aunque Excel ya incluye una gran variedad de funciones, si desea una función que sea más específica para su industria o lugar de trabajo, puede agregarla con VBA.

3. Tercero: puede usar VBA para agregar lógica (si declaraciones) y bucles (repetir acciones) a sus macros. Esto significa que una macro puede ser más que una grabación de acciones: puede ser un programa real con repetición inteligente y toma de decisiones.

4. Cuarto: VBA le permite crear interfaces de usuario, brindando a los usuarios una forma más fácil de interactuar con sus macros. Estas interfaces pueden ser botones simples en una hoja de trabajo o formularios de usuario complejos con controles enriquecidos como TreeViews y FlexGrids.

5. Quinto pero no final: VBA le permite aprovechar casi cualquier recurso de su computadora o Internet mediante el uso de bibliotecas DLL externas. Puede automatizar mucho más que Excel de esta manera, como acceder a servicios web y bases de datos, analizar archivos XML, interoperar con otras aplicaciones de Microsoft Office y mucho, mucho más.

¿Por qué es importante el VBA?

VBA se incluye de serie en todas las aplicaciones de Microsoft Office, incluido Excel. Excel es uno de los programas más populares del mundo y encuentra uso en una amplia variedad de campos y lugares de trabajo, todos con sus propios flujos de trabajo y casos de uso únicos.

Al no utilizar la automatización, se desperdician innumerables horas de trabajo cada semana realizando tareas aburridas y repetitivas a una velocidad humana. La automatización con VBA puede realizar las mismas tareas al ritmo vertiginoso de la computadora, lo que permite a los usuarios concentrarse en los aspectos importantes de su trabajo, ser más productivos y, tal vez, ¡salir de la oficina un poco antes!

¿Es VBA un buen lenguaje de programación?

VBA tiene los elementos de programación típicos como variables, matrices, funciones, decisiones y bucles. Tiene una sintaxis que es fácil de leer y puede aprovechar mucho el poder de Windows y otros servicios.

En el lado negativo, el manejo de errores no es muy elegante en VBA. Mientras que otros lenguajes usan bloques de código “try-catch-finally”, VBA usa declaraciones “On Error” para modificar cómo se comportan las macros cuando ocurre un error.

Además, VBA no se puede usar para crear programas, sitios web o servicios independientes, y no puede interactuar con las API de programación más nuevas, como la plataforma .NET.

Fuente: Microsoft y Corporate Finance Institute.