Acceder

Excel VBA y macros: Una herramienta muy útil para trabajar hojas de cálculo (1).

¿Alguna vez has querido programar macros de Excel para evitar trabajo repetitivo y tedioso, donde ocupas que la computadora haga el trabajo por tí?  Aquí he de presentar los fundamentos para que empieces a dar tus primeros pasos en la programación de macros y VBA para Excel.

Tengo miedo a la programación

Muchas personas le tienen miedo a la computadora, porque creen que es un lobo feroz que se come a los usuarios.  Afortunadamente si estás leyendo esto, sabrás que no es así.  De igual forma, un programa es una secuencia de órdenes donde las reglas para escribir son una mezcla de idioma inglés y la forma en que escribías matemática en secundaria.

Programar se parece más a crear recetas de cocina, que sería como darle órdenes a un robot cocinero.  Si tomas una sartén y echas los huevos antes que el aceite de cocina, los huevos se pegarán a la sartén, y no obtienes el resultado deseado. Pero si inviertes el orden, el resultado es distinto.  Así funcionan los errores de programación, pues la máquina hará lo que lo ordenaste, y no necesariamente lo que quieres que haga.

¿Le temes a crear recetas de cocina?  Tampoco deberías temer a la programación.  Al principio te costará un poco acostumbrarte, porque a veces existen procedimientos que ya están inventados y que hacen algunas cosas, y a veces nos lleva trabajo ver la lógica detrás de esos procedimientos.  Pero aparte de eso, no deberías complicarte la existencia.

¿Que es VBA?

En los años 1950 se inventa un lenguaje de alto nivel llamado FORTRAN (IBM Mathematical Formula Translating System), orientado a ingeniería y ciencias, que permitía escribir código de una manera más entendible e intutiva para el ser humano que empezar a escribir en ensamblador que es un lenguaje penosamente arduo para la mayoría de las personas.  Se dice que es de alto nivel porque la forma de expresar las cosas es más entendible para el ser humano, y evidentemente bajo nivel lidia más con aspectos funcionales de la máquina a niveles mucho menos intuitivos.

A partir de este lenguaje se inventa en 1964 el BASIC (Beginner's All-purpose Symbolic Instruction Code) por parte de los húngaros John George Kemeny y Thomas Eugene Kurtz del Dartmouth College en New Hampshire, EUA para personas que no tuvieran profundos conocimientos de computadoras y ciencias. 

Microsoft crea su propia versión con el lenguaje GW-BASIC y un compilador llamado BASCOM para Compaq.  Un compilador sirve para traducir el código que escribe el usuario (código fuente) a lenguaje binario (lenguaje máquina) que es el que las computadoras entienden.  Como el GW-BASIC no compilaba el programa para generar un archivo ejecutable, lo que hacía era "interpretarlo", que equivale a decir que toma las instrucciones de una en una, las compila y luego las ejecuta, un proceso que hace la ejecución mucho más lenta.

Luego viene Visual Basic (VB) que es un lenguaje, tradicionalmente considerado como orientado a eventos, aunque también es capaz de manejar objetos de una forma algo básica, que se considera fácil de trabajar por el manejo de interfaces gráficas y también por lo entendible que resulta el BASIC del cual se deriva.  Fue introducido en 1991 (versión 1), y ha sido objeto de mejoras con el tiempo, pero la versión que se utiliza al programar en macros de Microsoft Office pertenece a la versión 6 de 1998.  Posteriormente se introduce el Visual Basic en su versión .NET que tiene importantes diferencias respecto de versiones anteriores, de modo que el código escrito en versión 5 podría no funcionar en .NET

VBA (Visual Basic for Applications) es una versión recortada de Visual Basic 6, que fue extendida con comandos de macro y objetos específicos de Microsoft Office.  A diferencia del Visual Basic, no puede generar archivos ejecutables, sino que el código se debe echar a andar al estar dentro de una de las aplicaciones de Microsoft Office.

¿Cómo crear una macro?

Una macro es parecida un programa, pero se crea al grabar acciones del usuario que se representan como código.  Dichas macros por sí solas solo podrían realizar secuencias fijas que empulan al pie de la letra las acciones realizadas por un usuario.  Afortunadamente las macros de Officie incorporan la facilidad de usar también elementos de Visual Basic que permiten realizar procedimientos más complejos.

De esta manera puedes grabar algunas acciones (macros) y complementar el resto con instrucciones (VB) que agregas a tu gusto para cambiar todo para que se lleven a cabo los procesos que deseas realizar.

Si deseas crear tus primeras macros, aquí tienes un tutorial: Anthony's VBA page

El tutorial está hecho para Excel 2003.  Excel 2007 acceder a las funciones de grabado y edicion de macros es ligeramente distinto.  Lo demás es prácticamente igual.  Las incompatibilidades entre 2003 y 2007 no las notarás a menos que sea un programador "hardcore" que usa algunas características exóticas de Excel.  La mayoría de estos problemas suelen estar fuera de lo que un usuario normal que programa macros notaría.

  Excel 2003 Excel 2007
Grabar macro Tools > Macro > Record New Macro Vista > Macros > Grabar Macro
Editar macro Tools > Macro > Visual Basic Editor ALT F11

 

Si tienes preguntas sobre el tutorial, puedes aclararlas presentando tus preguntas aquí.

19
¿Te ha gustado el artículo?

Si quieres saber más y estar al día de mis reflexiones, suscríbete a mi blog y sé el primero en recibir las nuevas publicaciones en tu correo electrónico.

  1. en respuesta a Gamok1011
    -
    Top 100
    #21
    17/01/20 01:19

    Si usas el IDE de Visual Basic 6 el código servirá excepto por aquel código que tenga objetos de Excel. Visual Basic es lenguaje propietario de Microsoft.