Introducción a VBA

En este capítulo aprenderás qué es VBA, cómo usar el editor de VBA para crear macros usando código de programación y a editar macros grabadas con la grabadora de macros.

Qué es VBA

VBA significa Visual Basic for Applications, este es un lenguaje de programación hecho por Microsoft para automatizar cualquier cosa en su suite de oficina Office. Está basado en Visual Basic, por lo que sus comandos son prácticamente los mismos.

Cada opción, cada botón que presionas, cada cosa que haces en Excel Puede ser realizada mediante código de VBA, de hecho, cuando grabas una macro usando la grabadora, cada acción que haces se guarda como código de VBA.

Pero la grabadora de macros tiene sus limitaciones Cuando escribes código de VBA, no existen los límites. Si puedes hacer algo en Excel, también puedes hacerlo usando VBA.

Este es un ejemplo de código de VBA:

 1 Sub formula_a_valor()
 2 ' Convierte todas las formulas a valores absolutos
 3 '
 4     Cells.Select
 5     Selection.Copy
 6     Range("A1").Select
 7     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 8         :=False, Transpose:=False
 9     Range("A1").Select
10 End Sub

Lo sé, se ve bastante confuso ahora, pero no te preocupes, aun si nunca has programado. Este libro está diseñado no solo para enseñarte a utilizar VBA, sino también para enseñarte a programar.

Editor de VBA

Para ingresar al editor de VBA, abre alguna hoja de Excel y presiona las teclas ALT+F11, al hacer esto verás una ventana como esta:

Editor de VBA
Editor de VBA

Esta está dividida en varias secciones, no te preocupes si no puedes verlas todas en este momento, esto se debe a que tu hoja de Excel aún no tiene macros.

En la parte superior izquierda verás el explorador de proyectos, cada libro de Excel o archivo se trata como un proyecto, el código de VBA ira dentro de una carpeta llamada Módulos, dentro de esta carpeta existirá uno o más archivos que a su vez contiene código de programación (macros). En la parte derecha hay una ventana, ahí es en donde se puede visualizar el código de las macros.

Ver el código de programación
Ver el código de programación

Existen varios menús y herramientas, pero los iremos viendo en detalle poco a poco para no saturarte con información.

Editar una grabación de macros

Ahora vamos a practicar con algo sencillo, ya sabes crear macros usando la grabadora, entonces crea una macro sencilla, por ejemplo, una macro en la que cree o modifique los encabezados de una hoja de cálculo colocando en la celda A1 la palabra Nombre y en la celda B1 Apellidos.

Luego de grabar la macro, abres el editor de VBA (presionando las teclas Alt+F11) y posiblemente veas algo como esto:

Macro a editar
Macro a editar

Ahora imagina que tu necesidad ha cambiado y en la columna C1 necesitas que diga Teléfono, entonces en lugar de grabar otra macro, solo la abres en el editor y debes hacer dos cosas

  • Seleccionara la celda C1
  • Escribir el texto Teléfono

El código para eso sería:

1     Range("C1").Select
2     ActiveCell.FormulaR1C1 = "Teléfono"

Si lo agregas a la macro, ésta deberá verse así:

 1 Sub encabezados()
 2 '
 3 ' encabezados Macro
 4 '
 5 
 6 '
 7     Range("A1").Select
 8     ActiveCell.FormulaR1C1 = "Nombre"
 9     Range("B1").Select
10     ActiveCell.FormulaR1C1 = "Apellidos"
11     Range("C1").Select
12     ActiveCell.FormulaR1C1 = "Teléfono"
13      
14 End Sub

Ahora solo debes de probar la macro y tendrás que ver que automáticamente rellena las celdas A1, B1 y C1 con los textos que has programado en tu macro.

Ya has modificado tu primera macro escribiendo código. Sé que este ejemplo es muy sencillo y posiblemente te preguntas cómo sería hacer algo más complicado.

No te preocupes, a medida que avances en esta lectura, iras aprendiendo más trucos y los ejemplos y ejercicios se irán complicando cada vez más, hasta que te conviertas en un experto.

Comentarios en el código

Si has puesto atención, cuando observas el código que genera la grabadora de macros de Excel, genera algunos textos, que no son comandos en las macros, estos se llama comentarios y ayudan a que el código sea más fácil de leer y entender por nosotros los humanos.

Los comentarios son parte fundamental de todo programa, pero muchos programadores no los usan porque creen que les hace perder el tiempo. Pero en realidad es todo lo contrario, los comentarios pueden ayudarte a no perder tu tiempo. Voy a explicarte por qué debes utilizar siempre comentarios en todos los programas que escribas.

Nuestra memoria no siempre es confiable y cuando escribimos código, todo está claro en nuestra mente, pero rara vez escribimos un programa y no volvemos a verlo o modificarlo nunca. Un programa debe revisarse y corregirse a lo largo de toda su vida útil.

Entonces ¿qué pasa si debes agregar alguna funcionalidad a una macro 6 meses después de haberla creado?, lo más probable es que no recuerdes cómo funciona alguna fórmula que usaste, de donde tomas algún valor o por qué haces algo de una forma, en lugar de otra.

Todos estos problemas (y otros más) se resuelven al leer los comentarios que has escrito en el código. Ahora que ya sabes por qué debes usar los comentarios, veamos cómo puedes usarlos.

Si escribes una comilla simple ', eso indica que toda la línea es un comentario y será ignorada como código. Y ya que los comentarios no se ejecutan, entonces otro uso que se le da a los comentarios es el de deshabilitar temporalmente un bloque de código.

Pero si deseas convertir en comentario un bloque grande de código, no es práctico hacerlo línea por línea, entonces debes activar una barra de herramientas de Excel que te ayude en este proceso.

Haz clic derecho sobre la barra de herramientas actual y selecciona la opción Edición como se muestra en esta imagen:

Activar barra de herramientas Edición
Activar barra de herramientas Edición

Ahora para comentar un bloque, solo marcas el texto y presionas uno de los botones en la barra de herramientas para comentar o des comentar el bloque. Intenta hacerlo tú mismo.

Comentar bloque
Comentar bloque

Ejercicio

Tan solo hemos iniciado a conocer VBA, entonces el ejercicio de este capítulo es sencillo, debes grabar una macro (usando la grabadora), haz algo sencillo, por ejemplo una macro que escriba “Hola mundo” en la celda en donde te encuentres, luego entra al editor de VBA y explora la macro, revisa el código que se generó e intenta modificar “Hola mundo” por cualquier otro texto, luego corre la macro y comprueba que lo hiciste bien.