lunes, 28 de julio de 2014

¿Qué es una Macro?


La ventana Macros en Excel 2013.
La ventana Macros en Excel 2013.
Las "Macros" o la "Programación en Excel", son en mi opinión la herramienta más potente que tiene Excel. Llevan a Excel a un nivel muy superior del que se puede llegar con las herramientas "normales" de Excel. Sin usar las macros se pueden hacer cosas realmente potentes... Pero con ellas, todo queda mejor, da una sensación de mayor integración entre todas las herramientas que tenemos disponibles y mejoran mucho la usabilidad de las hojas. Queda todo con un mejor acabado, más redondo. Para explicaros que es una macro, creo que es mucho mejor que os ponga un ejemplo en el que se ve claramente como una Macro nos podría ahorrar mucho tiempo y trabajo. Vamos a imaginar, que todos los días, en mi jornada laboral de 8 horas, cada hora tengo que realizar las siguientes tareas:

  • Primero importo los datos de producción de unas máquinas de un archivo de texto.
  • A continuación con esos datos creo un gráfico.
  • Una vez creado el gráfico, cambio algunas de sus características para darle el aspecto que yo quiero.
  • Después, muevo el gráfico a una hoja de gráficos para que al imprimirlo tenga tamaño A4.
  • Casi acabando ya, imprimo dos copias del gráfico.
  • Y por último, una vez que tengo el gráfico impreso lo elimino.

Resultado Final de la Macro.
Resultado Final de la Macro.

Realizar todas estas tareas, 8 veces en mi jornada laborar me va quitar mucho tiempo. Que os parecería si os digo que todo esto se puede hacer en tres segundo si lo metemos en una macro... Incluso mejor, que os parecería si os digo que todo ese trabajo lo podemos meter en una macro y que simplemente pulsando un botón se hará tantas veces como lo necesitemos. Pasaríamos de ocupar unos cuantos minutos cada hora para realizar estas tareas, a ocupar sólo unos poco segundos.

Con esto que os acabo de contar ya os puedo dar una primera definición de Macro: Una macro es un conjunto de operaciones o pasos que se han grabado, para posteriormente ser ejecutados, ser realizados de forma secuencial, sin intervención del usuario. Fijaros que he utilizado el verbo "Grabar". Las macros en Excel se pueden crear usando la "Grabadora de Macros".

Grabadora de Macros en Excel 2013.
Grabadora de Macros en Excel 2013.

La "Grabadora de Macros" es una herramienta que desde el momento que le indiquemos, graba todos los pasos que vamos realizando en Excel. Una vez hemos finalizado los pasos que queremos que formen parte de la Macro, le indicaremos que pare la grabación. El resultado final de la grabación se convertirá en una Macro que posteriormente podremos ejecutar para que todos esos pasos se hagan sin intervención del usuario, se hagan automáticamente. Podríamos por ejemplo asignar esa macro a un botón y al ser pulsado se realizarán todos los pasos grabados. Seguro que más de uno ya se está emocionando y pensando en la de trabajo que se ahorrará...

Pero... cuidado, no todo es tan perfecto. Desde el momento que se lo indiquemos la grabadora grabará todo lo que hagamos pero debéis tener en cuenta dos detalles. La Grabadora graba todo el rato, esto incluye los momentos en los que nos confundamos... Por lo tanto es recomendable que antes de grabar una macro practiquéis un poco los pasos para no cometer errores en el momento de la grabación. Y el otro detalle que debéis tener en cuenta, es que la grabadora graba casi todo... Pero hay algunos pasos que no es capaz de grabar y harán que nuestra macro no sea tan automática como queríamos.


La macro no ha grabado la confirmación para eliminar el gráfico.
La macro no ha grabado la confirmación para eliminar el gráfico.

En el ejemplo que os he contado al principio, por ejemplo hay un paso que no sería capaz de grabar. Cuando eliminemos la hoja en la que está el gráfico se pedirá confirmación para la eliminación de la hoja, bueno pues la grabadora no es capaz de grabar si hemos pulsado que si o que no. En la imagen anterior podéis ver el momento en el que me pregunta si quiero eliminar el gráfico o no. Por lo tanto los pasos en los que se pida confirmación del usuario, no se grabarán, no formarán parte de la macro. Es una pequeña limitación que tienen las macros, pero no os preocupéis que todo tiene solución, enseguida os lo contaré.


Antes de continuar leyendo el artículo recuerda que todo lo que os ofrezco aquí es Gratis, pero si te gusta mi trabajo, puedes realizar una donación para que pueda continuar con este proyecto. Cualquier cantidad desde 1€/1$ es bienvenida. Gracias!!!!!!!!!!!!!!

 

Siguiendo con la grabadora, debéis tener en cuenta el siguiente detalle importante. Las macros que creáis con ella se convierten en Visual Basic, en concreto en una variación del Visual Basic tradicional llamada VBA, Visual Basic para Aplicaciones.  Todos los pasos que vais grabando en una macro se van traduciendo a líneas de código Visual Basic que es lo que realmente se ejecutará cunado uséis la macro. Prácticamente todas las aplicaciones de Office tienen en su interior este lenguaje de programación para personalizar las aplicaciones a nuestro gusto. En la siguiente imagen podéis ver algunas líneas relacionadas con la macro que comentaba al inicio del artículo.

Código Visual Basic generado por la Grabadora de Macros.
Código Visual Basic generado por la Grabadora de Macros.

Hasta aquí no hay problema, pero ahora volvamos unos párrafos atrás. Os he comentado que hay pasos que no se pueden grabar, la grabadora no es capaz de capturarlos, por ejemplo el que eliminaba el gráfico. ¿Qué podríamos hacer para solucionarlo? Bueno, podríamos modificar la macro para que no nos pida confirmación a la hora de eliminar el gráfico, para que lo elimine sin preguntar. ¿Cuál es el problema? Bueno, pues que la única manera de modificar una macro es modificando el código Visual Basic que ha generado la grabadora de macros. Es decir tenemos que saber  programar en VBA, en Visual Basic para Aplicaciones. Deberíamos entrar al Editor de Visual Basic y realizar las modificaciones necesarias para arreglar la Macro. El Editor de VB es la herramienta que llevan integrada las aplicaciones de Office para poder programar con VBA.

Editor de Visual Basic en Excel 2013.
Editor de Visual Basic en Excel 2013.

Ahora, seguro que os estaréis planteando otra pregunta. Entonces... ¿Es necesario saber programar para crear Macros? Bueno, pues no. Si la macros que creáis con la grabadora, satisfacen al 100% vuestras necesidades, no hace falta relacionarse con la programación. Pero, si necesitáis que vuestra macro haga cosas que la grabadora no puede grabar o queréis algo más de lo que os puede ofrecer la grabadora... sí que es absolutamente necesario aprender a programar en VBA. Debéis entender la grabadora como una herramienta que acerca la potencia de la programación en VBA a la gente que no sabe programar. Es como una especie de asistente que nos ahorrar tener que aprender programación, pero con las limitaciones que os estoy contando.

Con todo esto que os acabo de contar, ya os puedo dar mi visión de lo que es una Macro, es una visión muy personal no tiene por qué ser compartida por otras personas que crean "Macros". Para mí una Macro es un conjunto de pasos u operaciones realizadas por el usuario, que han sido grabados por la Grabadora de Macros y que posteriormente van a ser ejecutados de forma secuencial, sin ningún tipo de interacción por parte del usuario y sin ningún tipo de condiciones que puedan variar el funcionamiento de la Macro. Es decir para mí una Macro es lo que se crea con la grabadora y punto.

Muchos estaréis pensando, vale, pero es que se puede hacer más... bueno pues sí. Programando en Excel se puede llegar a crear una aplicación a medida que satisfaga al 100% todas las necesidades que pueda tener nuestro negocio. Moldearemos Excel a nuestro gusto e iremos mucho más allá de simplemente automatizar tareas repetitivas. Incluso haremos que Excel funcione perfectamente integrada con otras aplicaciones de Office. Por ejemplo, podríamos importar los datos de Access, a continuación analizarlos en Excel, crear unos gráficos y posteriormente usar esos gráficos para crear un informe en Word. Todo esto pulsando un botón. Conseguir esto, sólo con la Grabadora de Macros es imposible, hay que "ensuciarse las manos" con el VBA. En la siguiente imagen tenéis un ejemplo de una aplicación desarrollada en Excel.


Aplicación Creada en Excel.
Aplicación Creada en Excel usando VBA.

¿Por qué os cuento todo esto? Bueno, pues porque hay mucha gente que habla muy a la ligera de las macros y te dicen... "tu problema lo puedes solucionar con una macro". En realidad debería decirte... "tu problema lo puedes solucionar programando en Excel". Si no tienes conocimientos previos sobre esta herramienta dirás, que bien vamos a crear una macro... Y acabarás grabando un montón de macros que no solucionan tu problema porque no te han contado la realidad al 100%. La grabadora crear macros muy simples y que solucionan tareas repetitivas. Si quieres algo más potente, si quieres algo que pueda variar en su ejecución dependiendo de ciertas condiciones que se pueden cumplir o no... La grabadora no te va solucionar tus problemas, pero la programación en VBA sí.

En los artículos que voy a publicar sobre Macros os voy a contar muchas cosas sobre la Grabadora... Pero siempre os voy a intentar meter un poquito de programación para que veáis como las limitaciones que tiene esta herramienta, se pueden superar con la programación. Para mí es muy importante que hagáis esa separación entre Macros y Programación, ¿Por qué?

La explicación es muy sencilla, casi todas las aplicaciones principales de Office tienen VBA pero no todas tienen Macros y Grabadora de Macros, por lo tanto para mí no son lo mismo. De hecho si alguna vez usáis Access veréis que sí que tiene Macros, pero no tienen nada que ver con el concepto de Macro en Excel. De hecho, ni siquiera hay Grabadora de Macros, se crean de otra manera completamente diferente. La filosofía es la misma, automatizar tareas pero con un diseño diferente al que se usa en Excel, de hecho no se traducen a Visual Basic.
Diseñador de Macros en Access 2013.
Diseñador de Macros en Access 2013.

Resumiendo, para mí una Macro simplemente automatiza tareas secuenciales y el código que crean es mucho menos interesante y potente del que podríamos crear nosotros. Esto es todo por este artículo, en el siguiente veremos cómo empezar a crear Macros en Excel 2013 con la Grabadora de Macros. Si queréis adelantar trabajo, podéis ver los vídeos que ya he publicado sobre este tema para Excel 2010: Macros en Excel 2010.

*Siguiente Artículo:*:

2 comentarios:

  1. Hola no se si has recibo mis mensajes, respecto a una ayuda

    ya dias te escribo y no he tenido respuesta

    ResponderEliminar
    Respuestas
    1. Sobre la calidad de los vídeos te respondí en uno de los mensajes anteriores que pusiste y en cuanto a lo de la ayuda ya os he dicho muchas veces que no tengo tiempo para vuestras dudas personales. Sólo problemas con los vídeos.

      Saludos.

      Eliminar