Clase13

MACROS

En esta unidad estudiaremos qué son las Macros, en qué nos pueden ayudar y cómo crear macros automáticamente. Esta unidad tratará de manera muy sencilla el tema de macros sin entrar en profundidad con el lenguaje de programación utilizado por MS Excel, el Visual Basic Application (VBA), ya que esto ocuparía un curso entero y se sale del objetivo del curso.

Introducción
Cuando trabajamos con un libro personalizado, es decir, que nos hemos definido con una serie de características específicas como puedan ser el tipo de letra, el color de ciertas celdas, los formatos de los cálculos y características similares, perdemos mucho tiempo en formatear todo el libro si disponemos de muchas hojas. Con las macros lo que se pretende es automatizar varias tareas y fusionarlas en una sola, añadiendo por ejemplo un botón en nuestro libro que al pulsar sobre él realice todas esas tareas.

Crear una macro automáticamente
 La forma más fácil e intuitiva de crear macros es crearlas mediante el grabador de macros del que dispone Excel. Este grabador de macros te permite grabar las acciones deseadas que posteriormente las traduce a instrucciones en VBA, las cuales podemos modificar posteriormente si tenemos conocimientos de programación. Para grabar una macro debemos acceder a la pestaña Vista y despliega el submenú Macros y dentro de este submenu seleccionar la opción Grabar macro... Además de esta opción en el menú podemos encontrar las siguientes opciones: > Ver Macros... - Donde accedemos a un listado de las macros creadas en ese libro. > Usar referencias relativas - Con esta opcion utilizaremos referencias reativas para que las macros se graben con acciones relativas a la celda inicial seleccionada. Al seleccionar la opción Grabar macro..., lo primero que vemos es el cuadro de diálogo Grabar macro donde podemos dar un nombre a la macro (no está permitido insertar espacios en blanco en el nombre de la macro). Podemos asignarle un Método abreviado: mediante la combinación de las tecla CTRL + "una tecla del teclado". El problema está en encontrar una combinación que no utilice ya Excel. En Guardar macro en: podemos seleccionar guardar la macro en el libro activo, en el libro de macros personal o en otro libro. En Descripción: podemos describir cuál es el cometido de la macro o cualquier otro dato que creamos conveniente. Para comenzar la grabación de la macro pulsamos el botón Aceptar y a continuación, si nos fijamos en la barra de estado, encontraremos este botón en la barra de estado <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;"> donde tenemos la opción de detener la grabación. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">A partir de entonces debemos realizar las acciones que queramos grabar, es conveniente no seleccionar ninguna celda a partir de la grabación, ya que si seleccionamos alguna celda posteriormente, cuando ejecutemos la macro, la selección nos puede ocasionar problemas de celdas fuera de rango. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Una vez concluidas las acciones que queremos grabar, presionamos sobre el botón Detener de la barra de estado, o accediendo al menú de Macros y haciendo clic en.

<span style="background-color: #f7f0e2; color: #800040; font-family: Arial,Helvetica,sans-serif; font-size: 17px; text-align: justify;">Ejecutar una macro
<span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Una vez creada una macro, la podremos ejecutar las veces que queramos. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Antes de dar la orden de ejecución de la macro, dependiendo del tipo de macro que sea, será necesario seleccionar o no las celdas que queramos queden afectadas por las acciones de la macro. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Por ejemplo si hemos creado una macro que automáticamente da formato a las celdas seleccionadas, tendremos que seleccionar las celdas previamente antes de ejecutar la macro. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Para ejecutar la macro debemos acceder al menú Ver Macros..., que se encuentra en el menú Macros de la pestaña Vista , y nos aparece el cuadro de diálogo Macro como el que vemos en la imagen donde tenemos una lista con las macros creadas. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Debemos seleccionar la macro deseada y pulsar sobre el botón Ejecutar. Se cerrará el cuadro y se ejecutará la macro. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">En cuanto al resto de botones: > Cancelar - Cierra el cuadro de diálogo sin realizar ninguna acción. > Paso a paso - Ejecuta la macro instrucción por instrucción abriendo el editor de programación de Visual Basic. > Modificar - Abre el editor de programación de Visual Basic para modificar el código de la macro. Estos dos últimos botones son para los que sapan programar. > Eliminar - Borra la macro. > Opciones - Abre otro cuadro de diálogo donde podemos modificar la tecla de método abreviado (combinación de teclas que provoca la ejecución de la macro sin necesidad de utilizar el menú) y la descripción de la macro. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Un detalle importante a tener en cuenta es que, si ejecutamos una macro, no es posible deshacer la acción desde la herramienta deshacer común, por lo que es interesante ir con pies de plomo al ejecutar macros que vayan a realizar cambios importantes. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;"> Si quieres practicar estos puntos puedes realizar el [|Ejercicio de crear una macro automáticamente].

<span style="background-color: #f7f0e2; color: #800040; font-family: Arial,Helvetica,sans-serif; font-size: 17px; text-align: justify;">Crear una macro manualmente
<span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Para crear una macro de forma manual es necesario tener conocimientos de programación en general y de Visual Basic en particular, ya que es el lenguaje de programación en el que se basa el VBA de Excel. Si no tienes esta base puedes saltarte este punto del tema. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Si quieres leer sobre los conceptos básicos de programación, visita nuestro básico. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Primero debemos abrir el editor Visual Basic presionando la combinación de teclas <span style="font-family: 'Courier New',Courier,monospace; font-size: 12px;">Alt+F11. Para ver el entorno de desarrollo de programación del editor Visual Basic visita nuestro básico. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Una vez abierto el editor de Visual Basic debemos insertar un módulo de trabajo que es donde se almacena el código de las funciones o procedimientos de las macros. Para insertar un módulo accedemos al menú Insertar → Módulo. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">A continuación debemos plantearnos si lo que vamos a crear es una función (en el caso que devuelva algú valor), o si por el contrario es un procedimiento (si no devuelve ningún valor). <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Una vez concretado que es lo que vamos a crear, accedemos al menú Insertar → Procedimiento... <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Nos aparece un cuadro de diálogo como vemos en la imagen donde le damos el Nombre: al procedimiento/función sin insertar espacios en su nombre. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">También escogemos de qué Tipo es, si es un Procedimiento, Función o es una Propiedad. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Además podemos seleccionar el Ámbito de ejecución. Si lo ponemos como Público podremos utilizar el procedimiento/función desde cualquier otro módulo, pero si lo creamos como Privado solo podremos utilizarlo dentro de ese módulo. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Una vez seleccionado el tipo de procedimiento y el ámbito presionamos sobre Aceptar y se abre el editor de Visual Basic donde escribimos las instrucciones necesarias para definir la macro. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;"> Si quieres practicar estos puntos puedes realizar el [|Ejercicio de crear una macro manualmente].

<span style="background-color: #f7f0e2; color: #800040; font-family: Arial,Helvetica,sans-serif; font-size: 17px; text-align: justify;">Guardar archivos con Macros
<span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Cuando guardamos un archivo y queremos que las Macros que hemos creado se almacenen con el resto de las hojas de cálculo deberemos utilizar un tipo de archivo diferente. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Para ello deberemos ir la pestaña Archivo y seleccionar la opción Guardar como. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;"> <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Se abrirá el cuadro de diálogo Guardar como. En el desplegable Guardar como tipo seleccionar Libro de Excel habilitado para macros (*.xlsm). <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: center;">. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Dale un nombre y el archivo se almacenará. <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;"> Cuando abrimos un archivo que tiene Macros almacenadas se nos mostrará este anuncio bajo la banda de opciones: <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: center;"> <span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Esto ocurre porque Office no conoce la procedencia de las Macros. Como están compuestas por código podrían realizar acciones que fuesen perjudiciales para nuestro equipo. Si confías en las posibles Macros que contuviese el archivo o las has creado tú pulsa el botón Habilitar contenido. Y si no, cierra la advertencia de seguridad con el botón de la derecha.

<span style="background-color: #f7f0e2; color: #6b0101; font-family: Arial,Helvetica,sans-serif; text-align: justify;">Tomado de Aulaclic