viernes, 1 de junio de 2012

Macros en Excel para cambiar imágenes, gráficos, colores, tamaño y tipo de letra, con botones y/o al cumplirse una condición.

Las macros formalmente se definen como una secuencia de instrucciones que le indican a MS Excel qué hacer y las órdenes se ejecutan automáticamente, ya que son guardadas en un archivo de programación “Visual Basic”. Con esta poderosa herramienta podemos automatizar acciones y hacer nuestras tareas en Excel más eficientes  y menos rutinarias, ya que todas aquellas acciones que sean más bien de carácter repetitivo se pueden reducir a un clic; además nos ahorrarán grandes dolores de cabeza cuando la acción que ejecuta es de mayor complejidad, porque haremos esa acción manualmente sólo una vez y después se hará sola. Y lo mejor de todo es que no necesitamos tener grandes conocimientos de programación para construir una macro, ya que como vimso en clases, siempre podremos ayudarnos con Google.

Para grabar una Macro vamos a la pestaña vista y al hacer clic en macros seleccionamos grabar macro:

O también podemos ir a Opciones de Excel para habilitar la pestaña programador, que posee más opciones:


En esta ocasión revisaremos como mediante macros se pueden corregir aspectos estéticos y de formato en planillas de Excel, y lo veremos de dos formas, según como se ejecute la macro: Con botones o al cumplirse una condición. Tomaremos como ejemplo la base de datos de frutas, que usamos en un desafío del curso.
Macros con Botones
Aquí la secuencia de herramientas definida en la macro se ejecutará cuando hagamos clic en un botón. Al crear la macro también podemos definir un comando de teclas que permitirá ejecutarla, el cual siempre es Control + ”lo que definamos”.
Por ejemplo, haremos cambios en un gráfico mediante una macro, pasaremos de un gráfico de líneas para las ventas por categorías, a un gráfico de barras para las ventas por producto.
La situación inicial es:


Al presionar sobre “Grabar macro” nos aparecerá una ventana donde podemos darle un nombre a la macro, asignarle un método abreviado con teclas si lo deseamos, decidir si la guardaremos en “este libro”, “libro de macros personal” o “libro nuevo”. También podemos hacer una descripción de lo que hace nuestra macro, lo que es útil especialmente cuando el archivo será trabajado por otras personas, o para que nosotros mismos recordemos qué hace:

Luego de aceptar en la ventana anterior, empezamos a hacer todas las modificaciones sobre el gráfico inicial. Pueden fijarse que la barra de estado muestra un icono que indica que estamos grabando la secuencia de una macro (A la derecha de “Listo”):

Cuando hayamos terminado la secuencia, vamos a “Detener grabación”:

Ahora, desde la condición inicial de nuestro gráfico, insertaremos un rectángulo que simulará el botón de la macro que definimos previamente:

Ya que tenemos el botón creado, hacemos clic secundario sobre él y vamos a “Asignar macro”, donde seleccionamos la macro correspondiente:


Luego de aceptar, si hacemos clic sobre el botón recién asignado a la macro, ésta se ejecutará y tendremos el gráfico modificado según los pasos que definimos:

Para el caso en que necesitemos hacer modificaciones a imágenes, el proceso en general es análogo, obviamente los pasos mientras grabemos la macro van a adecuarse a lo que deseemos hacer en las imágenes, pero los pasos para iniciar, finalizar la macro y asignar un botón para su ejecución, es el mismo.

Macros al cumplirse una condición
En ocasiones puede ser útil que la macro se ejecute de forma automática y no con botones. En estos casos  la señal que Excel entenderá para ejecutar la macro, será el cumplimiento de una condición que definamos. La forma de hacerlo variará un poco de la forma que vimos en clases, para que sea un complemento y veamos una de las muchas formas distintas de trabajar
Para ejemplificar haremos una macro que cambiará el formato de las celdas (Tipo y tamaño de letra, color y bordes) para formar una tabla, si en la  celda A1 dice “Tabla”.
Esto lo haremos inicialmente de igual forma que una macro cualquiera (Haciendo los pasos pertinentes mientras la grabamos), tal cual como lo mostramos arriba. Sin embargo, para que la macro se active cuando se cumpla la condición que hemos definido haremos algunas modificaciones en Visual Basic.
Después de que tengamos la Macro creada, que en este caso se llama “Formato”, vamos a la opción “Visual Basic” en la pestaña programador:



Al hacer clic se abrirá una nueva ventana, que corresponde a Microsoft Visual Basic. Es relevante saber que al hacer macros se crea un Proyecto de Visual Basic (VBAProject). Las macros se guardan en la carpeta “Módulos” y en la carpeta “Microsoft Excel Objetos” podemos definir secuencias, comandos y eventos para cada hoja de nuestro archivo Excel.
En la siguiente imagen se ve la sintaxis de nuestra macro “Formato”, que son todos los pasos que se hacen al grabar traducidos a lenguaje de programación:

Ahora necesitamos que esta macro se ejecute en la hoja que deseamos (Hoja 2) si se cumple que en la celda A1 dice “Tabla”. Para lograrlo debemos ir a la hoja 2 de la carpeta “Microsoft Excel Objetos” y definir un evento, que para este caso el adecuado es “Change”, al seleccionarlo se crea automáticamente la línea de comando inicial y final, y entre ellas debemos colocar nuestra condición. Nuestra condición es: If (Target.adress(False, False) = “A1” And Target.Value = “Tabla” Then Formato,  la que quiere decir: Si la dirección objetivo es la casilla A1 y el valor que posee es “Tabla” entonces que se ejecute la macro Formato:

Luego guardamos nuestro archivo de Visual Basic, lo cerramos y comprobamos si funciona escribiendo “Tabla” en la celda A1
Sin Macro:

Con Macro:



Dependiendo de nuestras necesidades, podemos crear macros con distintas características, en este caso revisamos aplicaciones para dos formas de ejecución, con Botones y con Condiciones. Queda a nuestro criterio ver cual usamos en cada situación, y según nuestra tarea en particular ver que condición o condiciones son necesarias para que una macro se active, lo que definirá también los eventos que podamos crear.
Y finalmente un Tip: Al guardar el archivo Excel debemos hacerlo como “Libro de Excel habilitado para macros”, ya que de lo contrario, cuando volvamos a abrir el archivo éstas no funcionarán.

No hay comentarios:

Publicar un comentario