Espero que este post sea útil para aquellos usuarios que siempre quisieron aprender a usar los Macros en Excel y nunca pudieron aprenderlo por algún motivo. Lo considero útil para aquellos que trabajamos diariamente con esta herramienta y traté de hacerlo en el lenguaje mas simplificado posible para que sea accesible a todos. 


-------------------------------------------------------------------------------------------------------------------------------------------------- 

Excel cuenta con un complemento muy poderoso llamado Visual Basic (solo una parte del lenguaje), que permite hacer o resolver los problemas mas fácilmente. 

Por inercia, generalmente los usuarios de Excel (inclusive los avanzados) tienden a desconocer el uso de esta herramienta, sobre todo por no animarse a investigar sobre el tema. 

He visto muchos posts en taringa que contienen manuales de Macros, pero no me pareció ver un post que explique lo que es un Macro en su nivel mas básico, y que oriente (y anime) a los usuarios a dar los primeros pasos de esta aplicación tan poderosa, que logrará hacer de Excel en este caso, una herramienta mucho mas potente. 

Antes que nada quiero aclarar que este es mi primer post, así que pido disculpas de antemano por cualquier error u omisión que encuentren. En dicho caso les pido que me dejen su comentario e intentaré arreglarlo en breve. 

He hecho uso de taringa durante un buen tiempo, y consideré que ya era hora de devolverle algo, aunque mas no sea esto, que es el producto de unos 5 o 6 años de experiencia laboral usando estas 2 utilidades. 

Comienzo por explicar con mis propias palabras lo que es un(a) Macro: 

Una Macro es una serie de pasos que se almacenan para que sean ejecutados posteriormente. Quizás no la entiendan en un principio pero cobrará sentido a medida que avanzan en el post. 

Por ejemplo, todos los días empleo frecuentemente en mis celdas los mismos pasos: Tamaño de Fuente (Tamaño de la letra), Negrita, Fuente (Tipo de letra) y Color de Fuente (Color de Letra). 

Imaginen que quieren convertir el siguiente ejemplo: 

 

En lo siguiente: 

 

Hacer este procedimiento una vez, es muy sencillo y todos sabemos hacerlo. 

Ahora imaginen que en el trabajo deben repetir este procedimiento varias veces por día, todos los días… sería bueno encontrar una forma para que Excel haga ese trabajo por nosotros no ? 

Este es un ejemplo muy sencillo y muy básico… simplemente para orientar al usuario acerca de lo que puede hacer Excel por nosotros. Veamos entonces un ejemplo un poco mas complejo. 

Como les comentaba anteriormente, hago uso de esta combinación de herramientas todos los días en mi trabajo. En una oportunidad, me encontré ante la siguiente situación: 

Imaginen una empresa que vende determinado tipo de producto cualquiera y que se basa en una planilla de Excel cuando recibe un pedido y debe pasar dicho pedido a la sección de Depósito. Dicha planilla tenía una vista algo similar a lo siguiente: 

 

Cual era el procedimiento ? 

- Se tomaba el pedido al cliente y se ingresaban las cantidades deseadas en cada artículo. 
- Se filtraban los datos para que solo queden visibles los artículos que tengan algo en la columna “Cantidad” 
- Se imprimían dos copias para que el depósito prepare el pedido 
- Se guardaba el archivo 
- Se enviaba por correo el archivo con los cambios a la persona encargada de hacer el flete. 

Ahora ya estamos hablando de un procedimiento más complejo, pero aún así es capaz de ser realizados por una Macro. Estoy seguro que ya son capaces de darse cuenta del tiempo que nos puede ahorrar esta herramienta (siempre asociado a tareas repetitivas). 

Repasemos ahora la definición que les viéramos acerca de los Macros para ver si ahora tiene mas sentido: 

Una Macro es una serie de pasos que se almacenan para que sean ejecutados posteriormente. Se ve mas claro cual es el concepto ahora ? 

Con la ayuda de una Macro, voy a poder primero guardar un procedimiento, una serie de pasos, para poder luego ejecutarlo, haciendo que Excel repita dicha ejecución de pasos en el mismo orden en el que lo grabé. 


Como funciona y como se complementa Excel y Visual Basic ?
 

Si tenemos un libro de Excel abierto, presionando la combinación de teclas: “Alt + F11” lograremos hacer que se abra el editor de Visual Basic. Este editor es quien guardará la información de la Macro, justamente en lenguaje Visual Basic (por ahora abran y cierren si quieren el editor… todavía no vamos a hacer nada en él). 

 

Es importante remarcar dos importantes aspectos: 
1) No es necesario saber absolutamente nada de programación para poder crear una macro sencilla. Excel diseñó una posibilidad para que aquellos usuarios sin nociones de programación, puedan de todas maneras hacer uso de esta herramienta. 
2) Lo que esté escrito en el editor de Visual Basic, se graba dentro del archivo Excel en cuestión; es decir, no es nada que se tenga que graba por separado en otro archivo. 

Debido a la primer consideración, en este post no vamos a exponer como manejarnos en el entorno de Visual Basic (en la ventana de dicho programa), salvo por algunos aspectos fundamentales, ya que no es la prioridad en este caso; sino que optaremos por enfocarnos en el uso básico de esta herramienta. 
Si este post es de utilidad y lo encuentran práctico, luego podré ver de desarrollar un tutorial acerca de cómo manejarnos en este entorno. 


Como se crea una Macro ? 

Existen al menos dos maneras para crear una Macro: 

- Si conocemos el lenguaje de programación Visual Basic, en el editor, podemos directamente escribir el código del mismo. Por supuesto que esto es solo para usuarios avanzados y no es lo que haremos en esta oportunidad. 
- Grabar una Macro: Por suerte, Excel tiene desarrollada la posibilidad de grabar una Macro. Que quiere decir esto ? Es simple, cuando nosotros empecemos a grabar una Macro, Excel “filmará” todos los movimientos que nosotros hagamos dentro del programa, y los traducirá al código de Visual Basic para que luego lo podamos ejecutar como Macro. 

Veamos un ejemplo de esto para que sea mas entendible: 

En versiones anteriores a Excel 2007, debemos ir al Menú View (Vista)  Toolbars (Barra de Herramientas)  Visual Basic (les recomiendo que abran un libro nuevo en blanco y cierren todos los otros archivos Excel que puedan tener abiertos) 

 

Aparecerá la siguiente Barra de Herramientas (Toolbar) 

 

Noten lo siguiente: los primeros dos íconos que aparecen en dicha barra de herramientas, son muy similares a los que podemos encontrar en cualquier programa reproductor de música o video, son los ya conocidos botones de “Play” o “Reproducir” y el de “Record” o “Grabar”. 

Si presionan el botón de “Play”, les aparecerá la siguiente ventana: 

 

Porqué aparece vacía ? Es porque todavía no hemos creado un macro en este libro nuevo. Una vez que grabemos un macro y le asignemos un nombre, estos irán apareciendo en esta ventana, y esta será una de las 3 formas que tendremos para ejecutarlo. 


----------------------------------------------------------------------------------------------------------------------- 
Apéndice para usuarios de Excel 2007 (solo ellos lean los siguientes 4 puntos) 
----------------------------------------------------------------------------------------------------------------------- 

1) Deberán ir a Inicio, Opciones de Excel: 


 

2) Y en la ventana que aparecerá deberán marcar la pestaña de “Mas Frecuentes”, para luego marcar la casilla que dice “Mostrar ficha Programador en la cinta de opciones” y luego hacer clic en aceptar. 

 

3) Ahora vemos como entonces en la cinta de opciones, tenemos la opción de “Programador”. Si vamos a ella, podremos ver lo siguiente: 

 

4) Donde los botones de “Grabar” o “Record” con la forma vista anteriormente, se sustituyen simplemente por “Grabar Macro”, y el botón de “Play” o “Reproducir”, lo encontramos bajo el nombre de “Macros”. 

----------------------------------------------------------------------------------------------------------------------- 
Volvemos al funcionamiento en común, sin importar la versión de Excel que estemos utilizando 
----------------------------------------------------------------------------------------------------------------------- 

Nos vamos a concentrar por ahora entonces, en el botón de “Record” o “Grabar Macro”. Algo importante es saber que desde que presionemos dicho botón, Excel estará “filmando” todo lo que nosotros hacemos, y lo hará hasta que detengamos dicha “grabación”. 

Vemos un ejemplo práctico para ver como funciona: 

Al presionar el botón de Grabar, aparecerá la siguiente ventana: 

 

Donde Excel nos está preguntando, entre otras cosas, como queremos que se llame la Macro. El resto de las opciones las dejaremos para ver mas adelante. 

Elegimos un nombre adecuado (igual estamos haciendo un ejemplo), y presionamos “Ok”. En este momento comenzará la “grabación”. 

En este ejmplo, lo que hice fue lo siguiente (este es un ejemplo muy sencillo y solo a fines de entender el funcionamiento. La verdadera utilidad la veremos mas adelante): 

Me paré en la celda C1, y escribí: “Ejemplo” 
Con el mouse me paré directamente en la celda C4 y escribí “De cómo grabar” 
Con el mouse me paré directamente en la celda C7 y escribí “una macro” 
Presioné la tecla “Enter” 

Noten como luego de comenzar la grabación, el botón con forma de “Record”, se convirtió en el de “Stop” (en versiones anteriores a 2007), o simplemente como el botón de “Record Macro” se convirtió en “Stop Recording”. 

 

 

Luego que terminemos de grabar la macro, pararemos la grabación presionando sobre dicho botón. 

Al presionar el botón de “Detener grabación”, habremos terminado de crear nuestro primer Macro. 
Solamente a fines didácticos, y para que entiendan que es lo que hace Excel, les recomiendo hacer lo siguiente: Según su versión, presionen el botón de “Ejecutar Macro” o “Macros” 

 

Aparecerá la misma ventana que vimos anteriormente: 

 

En este caso, en la lista de Macros, nos aparece el nombre del Macro que acabamos de crear. Presionen el botón de “Edit” o “Modificar”que muestra la figura. Excel los llevará al editor de Visual Basic, y les mostrará nada menos que el código en dicho lenguaje que generó cuando nosotros grabamos el Macro: 

 


Que fue lo que pasó ? Desde el momento en que empezamos la grabación, Excel “filmó” nuestros pasos y los tradujo al lenguaje de Visual Basic y lo almacenó en forma de Macro. 

Como les comenté en un principio, no es la idea en esta oportunidad, profundizar sobre el código en si mismo, pero como podrán apreciar (si recuerdan cual fue la secuencia de pasos que hicimos en Excel), no se trata de un lenguaje para nada complejo. Es claro notar en el código, la referencia a cuando hicimos clic sobre la celda C1, luego escribimos “Ejemplo”, luego hicimos clic sobre la celda C4, y así sucesivamente. 

Creo que en este momento ya están en situación de comprender realmente lo que significa esto y también de darse cuenta de lo que pueden llegar a realizar con esta herramienta. 

Ya estamos en condiciones de probar el funcionamiento de esta macro. En la misma ventana, en vez de presionar el botón de “Editar”, vamos a presionar el de “Ejecutar” o “Run”. IMPORTANTE: Antes de hacer esto, deben hacer una de estas dos cosas: 
- Borrar lo que ya escribieron (porque de lo contrario Excel sobre escribiría las celdas en cuestión y no notarán la diferencia, o 
- La otra opción es pararse en una hoja de cálculo nueva (en el mismo archivo / libro, pero en una hoja en blanco) y desde ahí ejecutan la Macro. 

 


Verán cómo se ejecutan los mismos pasos que nosotros mismos grabamos y llegamos al mismo resultado de cuando nosotros realizamos la grabación. 


Para ver un ejemplo mas concreto y útil, podemos hacer uno que pinte de un determinado color, y le aplique un determinado formato a la letra de las celdas que están seleccionadas. 

Quiero convertir: 

 

En: 

 


Como hago ? El procedimiento es sencillo y quizás algún usuario avanzado ya se anime a hacerlo solo. Es que en realidad ya estarían en condiciones de hacerlo por sus propios medios, pero por si acaso, repasaremos los pasos a seguir, y veremos un detalle muy importante para esta situación en particular, y para muchas más. 


Nótese lo siguiente: En este caso, yo no quiero escribir en la celda A1 la palabra “Artículo”, en B2 “Cantidad…... y luego aplicar el formato que quiera… en realidad el objetivo de esta macro es aplicar un formato deseado a unas celdas en particular, previamente seleccionadas. Es importante tomarse un minuto para reflexionar sobre la diferencia entre ambas situaciones. 

Espero que con el próximo ejemplo quede mas clara la diferencia: 

 

También se trata de darle formato a los títulos, pero para que comprendan la diferencia, solo seleccioné las 3 primeras celdas. Ahora grabaré mi macro, presionando el botón “Grabar Macro” y le daré a las celdas el formato que yo quiera. 


 

Es importante reiterar que antes de grabar el macro yo ya debía tener las celdas seleccionadas, luego aplico el formato, y luego al terminar de aplicar el formato, presiono el botón “Detener grabación”, sin mover las celda seleccionadas y sin tampoco seleccionar una nueva celda con el mouse. 
Porque es importante esto ? Porque como viéramos mas arriba, cada acción que nosotros hacemos es “filmada” por Excel y luego traducida a Visual Basic. Entonces que pasaría si, mientras grabamos el macro, nos posicionamos con el mouse en la celda A3 ? Luego, cada vez que ejecutemos la Macro, luego de aplicar el formato a las celdas seleccionadas Excel se va a ir a parar a la celda A3, porque eso tiene escrito en el código del Macro. 

La manera de darse cuenta si lo que hicimos fue correcto, una vez terminada la grabación, debemos seleccionar las otras dos celdas que quedaron sin formato, y correr el Macro con esas celdas seleccionadas, a ver si Excel es capaz de aplicarle el mismo formato que intentamos grabar. Si logran hacerlo, ya habrán creado su primer Macro con una utilidad válida. 

 

Deberá haber desaparecido la ventana de Macros y el resultado por supuesto que será el siguiente: 

 

Ahora, prueben escribir cualquier cosa en cualquier celda, luego selecciónenlas y corran nuevamente el macro, para que vean como toma el formato establecido en el Macro. 

 

Donde todos a esta altura ya sabremos cual será el resultado: 

 

Por si acaso, dejo una captura de pantalla con el código de Visual Basic de este Macro en particular: 

 

Resumiendo un poco el tema, lo que es necesario que entiendan es que la aplicación de Macros en Excel es muy útil para situaciones en las que se repite el mismo proceso reiteradamente, y la variedad de aplicaciones es infinita, desde situaciones muy pero muy simples, hasta situaciones realmente complejas. 

Aquellos usuarios avanzados seguro podrán practicar situaciones particulares propias y les puedo asegurar que el ensayo y el error es la mejor manera de aprender. De todas maneras, si alguien se encuentra en una situación que no puede resolver, no tengo inconveniente en que me contacte y veremos entre los dos cual sería la mejor solución al problema. 

Donde se graba una Macro ? 

Si bien este punto ya fue cubierto, es importante repasarlo ahora que tenemos un concepto mas claro del tema. 
Habíamos dicho que la Macro se graba “dentro” del mismo archivo de Excel, es decir, no se graba en ningún archivo por separado. 

El problema es que para ejecutar una Macro, debe estar abierto el archivo Excel que la contiene. En otras palabras, si nosotros guardamos el archivo en el que grabamos la Macro anterior y lo cerramos, no podremos ejecutarlo en algún otro libro de Excel que esté abierto. 

Para solucionar este problema entonces, es que existe lo que se llama el “libro de Macros Personal”. Esto es un archivo oculto a la vista del usuario, que se abre siempre que abrimos Excel, donde grabaremos todos los Macros que queremos que estén siempre disponibles para poder ser ejecutados. 

Volvemos por un segundo a la pantalla que aparece luego que presionamos el botón de “Grabar Macro” y prestemos atención a la pestaña desplegable de “Store macro in” o “Guardar Macro en” y analicemos las opciones que nos ofrece: 

 

Las dos últimas opciones son bastante intuitivas: “This Workbook” o “Este Libro” significa que la Macro será grabada en este archivo en particular, lo que implica que solo podrá ser ejecutado si este archivo en particular está abierto. 

La opción “New Workbook” o “Nuevo Libro”, es igual que la anterior, con la diferencia que abrirá un nuevo archivo Excel y la Macro será guardada en él. 

Lo novedad es la que nos ofrece la opción “Personal Macro Workbook” o “Libro de Macros Personal”, que grabará dicha Macro en ese archivo que comentáramos líneas atrás, que consiste en aquel libro oculto que se abrirá cada vez que abramos Excel. Esto permitirá que las Macros que grabemos en ese archivo personal, estén siempre disponibles siempre que Excel esté abierto (por lo general es mejor siempre usar esta opción). 

Es importante mencionar que la primera vez que hayamos grabado nuestra primer Macro en dicho libro personal, Excel creará ese archivo para guardar todos nuestros Macros; es decir, antes de haber grabado el primero, dicho archivo todavía no existe. 

Luego de haber creado nuestro primer Macro en el libro personal, podremos ver ese archivo, o sea “des ocultarlo”. Para esto debemos hacer lo siguiente: 

 

 

Y aparecerá la siguiente ventana: 

 

Esto quiere decir que estamos “des ocultando” el archivo de Macros personal, y ahora será visible. 

Esto nos permitirá de ser necesario, modificar los Macros grabados en este archivo Personal (si el libro está oculto, no podremos hacer modificaciones en el código del Macro): 

 

Una vez hechas todas las modificaciones en los Macros guardados en el libro personal, es necesario volver a ocultarlo antes de cerrar Excel (para hacer esto debemos estar posicionados en el libro de Macros): 

 

 


Sin que casi nos demos cuenta, este archivo “desaparecerá” de nuestra vista. Lo que debemos hacer a continuación es guardar todos los archivos de Excel, y cerrar por completo la aplicación. Al hacer esto, como modificamos un libro que estaba oculto, antes de cerrar, Excel nos preguntará lo siguiente: 

 

A lo que es más que evidente que responderemos que “Sí”. 

Ese archivo “oculto” que se abre automáticamente cuando abrimos Excel a parir de ahora, es guardado en la siguiente dirección: 

C:\Documents and Settings\[Usuario]\Application Data\Microsoft\Excel\XLSTART 

Estas carpetas son carpetas ocultas, por lo que para poder verlas deberán asegurarse de que en el explorador de archivos, tengan marcada la siguiente opción: 

 


 


Como se ejecuta una Macro ? 


Hasta ahora hemos visto solo una manera de ejecutar una Macro, pero hay al menos otras dos maneras que nos serán de mucha más utilidad. 

Si vamos a la ventana donde nos aparecen los macros disponibles, atenderemos ahora al botón “Opciones”, que nos ofrece dicha ventana: 

 



Al presionar el botón “Opciones”, nos aparecerá la siguiente ventana: 

 


Que nos permitirá asignarle un acceso directo a la ejecución de dicho Macro, mediante la combinación de teclas deseado (así como por ejemplo si presionamos “Ctrl + G” o “Ctrl + S” (según el idioma), nos guarda el archivo, en el ejemplo, simplemente al presionar “Ctrl + t” ejecutará el Macro “FormatoTítulos” sobre las celdas que estén seleccionadas. Es posible que la combinación de teclas sea “Ctrl + una letra” o “Ctrl + Shift + una letra” (a discreción del usuario). 

La otra gran opción que nos permite ejecutar una Macro es creando una barra de herramientas personalizada, que contenga un botón que también ejecute esa Macro. 
Primero veremos como hacerlo en versiones de Office anteriores a 2007 (seguir las indicaciones de las capturas de pantalla): 

 

 


Aparecerá una pequeña barra de herramientas en la pantalla (es la que acabamos de crear). Debemos ahora introducirle un botón (pinchamos y arrastramos “Custom Menu Item” hacia la nueva barra de herramientas): 

 

Y haciendo clic derecho sobre ese nuevo botón, le asignaremos el Macro que creamos anteriormente: 

 


 

Noten como pueden cambiarle la apariencia a dicho botón, cambiando entre otras cosas lo que dice el botón y la imagen del mismo: 

 

Al cerrar todas las ventanas que hemos abierto para personalizar el menú, nos encontramos con que ahora tenemos una nueva barra de herramientas, que tiene un botón que ejecuta una acción que nosotros mismos hemos creado. Para culminar, lo único que falta es ubicar (arrastrando) esa barra de herramientas, junto a las otras barras de herramientas que tenemos en Excel: 

 

En Excel 2007, esta personalización se hace de la siguiente manera: 

En la barra de herramientas e acceso rápido (donde están las flechas de deshacer, guardar, etc.), hacemos clic derecho y seleccionamos lo siguiente: 

 



Y procedemos según la captura de pantalla: 

 

Para poder cambiar la imagen del botón y / o cambiar lo que el mismo dice, debemos hacer clic en la opción de Modificar:

 

Ahora mi barra de herramientas se ve de la siguiente manera: 

 

-------------------------------------------------------------------------------------------------------------------------------------------------- 
-------------------------------------------------------------------------------------------------------------------------------------------------- 

Esto sería todo para esta primer entrega… para complementar, les dejo para que les sirva como ejemplo, un libro de Macros Personales mío, con algunas Macros que utilizo de manera cotidiana en el trabajo, y realmente me hacen ganar mucho tiempo (por mas sencillas que sean). Dejé solo los más sencillos (aunque alguno requirió de programación adicional), pero creo que serán de aplicación a aquellos que utilicen Excel en su trabajo diario. En dicho archivo está la lista de Macros disponibles. 

Descargar Archivo 

Si les parece de interés y quieren tener disponible dichos Macros, deberán copiar este archivo en la carpeta que veíamos hoy más temprano: 

C:\Documents and Settings\[Usuario]\Application Data\Microsoft\Excel\XLSTART 


Apéndice: Autorizar el uso de Macros al abrir Excel: 

Seguramente ocurra que al abrir un archivo que contiene Macros, nos aparezca una advertencia de seguridad, la que debemos desactivar para que se puedan ejecutar las Macros. En Excel 2007 se vería así: 

 

En versiones anteriores, debemos seguir la siguiente secuencia de pasos: 

 

Para luego hacer lo siguiente: 

 

Luego de hacer esto, al abrir un archivo que contenga Macros, nos aparecerá el siguiente cartel: 

 



Bueno ahora sí creo que estoy en condiciones de dar por finalizado este tutorial. Espero que les sirva de ayuda y por sobre todo, que sea suficiente para que “rompan” con ese miedo que algunos pueden tener con encarar el tema de Macros por considerar que es algo demasiado complicado. 
De todas maneras, si alguno se ve en apuros para realizar algún Macro en especial, no dude en consultarme y juntos veremos que podemos hacer. 

Como dije al principio del post, pido disculpas en las fallas que puede tener el mismo, ya que este es mi primer post, por lo que agradeceré cualquier comentario que me ayude a mejorarlo.