Grabación de una macro en Excel
Para comprender mejor y de forma práctica como se graba una macro, realizaremos su estudio mediante un primer ejemplo muy sencillo
Supongamos que queremos crear una macro, que cuando se ejecute nos inserte en la celda actual de la hoja activa, la fecha de hoy y además le aplique un formato centrado fuente Arial black tamaño 10 y color azul con borde grueso.
Inicialmente, los pasos a seguir para la creación de la macro son:
- Situar el cursor en cualquier celda vacía de una hoja.
- Dentro de la ficha de Programador, contamos con el grupo de opciones Código que recoge todos los comandos necesarios para la gestión de macros:
- Para comenzar la grabación de la macro, pulsamos sobre la opción Grabar macro
.
De esta forma hacemos aparecer el cuadro de diálogo Grabar macro:
- En este cuadro de diálogo establecemos los principales características de la macro que vamos a grabar:
- Completado el cuadro, pulsamos el botón Aceptar, en ese momento comienza la grabación de la macro. Existen y aparecen en pantalla dos elementos visuales que nos informan de que la grabación está en curso:
- A continuación realizaremos paso a paso, todas las acciones que recoge la macro.
Primero ANALIZAR, luego ENSAYAR y finalmente GRABAR
Cualquier acción equivocada que se realice a partir de este momento quedará registrada como parte de nuestra macro. De ahí que un correcto ensayo antes de grabar la macro sea interesante y fundamental. Esto nos evitará abortar el proceso de grabación deteniéndola y teniendo que volver a comenzar la grabación desde el principio.
Otra opción para usuarios expertos en estas lides, sería continuar con el progreso de grabación de la macro, conocido el error cometido, y posteriormente realizar la corrección pertinente en el código Visual Basic generado -lo cual, sin duda, es más tedioso y complicado para nosotros-.
... Comenzamos (¡con sumo cuidado!):
- Escribir la función que presenta la fecha de hoy en una celda: =HOY().
- Al pulsar Enter, el cursor pasa a la celda de debajo, con lo que tenemos que retroceder a la celda en la que se ha insertado la fecha. Pulsamos por lo tanto flecha arriba é, o bien la seleccionamos mediante el ratón -este movimiento también quedará grabado como parte de nuestra macro-.
- Fuente Arial Black.
- Tamaño de fuente 10.
- Justificación centrada.
- Color de fuente azul.
- Borde contorno grueso.
Finalizadas todas las operaciones que componen la macro, debemos indicar que hemos finalizado la grabación, para ello pulsar el botón Detener grabación
Con estos sencillos pasos hemos conseguido grabar una macro, generando su correspondiente código de programación Visual Basic.
Posicionamientos absolutos y relativos
Cuando ejecutemos la macro que se acaba de grabar, veremos que el resultado obtenido al ejecutar esta macro, es la inserción de la fecha en la celda en la que tengamos ubicado el cursor en el momento de iniciar la grabación de la macro, pero como a lo largo de la grabación de la macro, hemos situado el cursor en una determinada celda -recordemos que al pulsar Enter, el cursor se desplazó hacia abajo una posición y tuvimos que subir de nuevo con flecha arriba é, se aplica el formato indicado, pero en la misma dirección de celda en la que estaba el cursor situado cuando la macro se creó (en la posición que tenía el cursor cuando se grabó la macro), y no en la celda activa para cada ocasión en la que se ejecute la macro, lo cual sería nuestro objetivo.Esto se debe a que la posición que tenía el cursor cuando se grabó la macro, ha sido tomada como posición absoluta con lo que al ejecutar la macro, las acciones las aplica sobre esa celda, no sobre la que estamos posicionados cada vez que ejecutamos la macro.
En un próximo apartado estudiaremos la forma de solucionar este problema para que cuando se grabe la macro, las referencias a celda sean consideradas no de forma absoluta a celda sino de manera relativa a posiciones dentro de la hoja.
El libro de macros personal
En Excel, siempre que tenemos abierto un libro de trabajo y hayamos guardado con antelación en nuestro Excel una macro en el libro de macros personal, tenemos "a la sombra" abierto también, un libro de cálculo llamado PERSONAL.XLSB, solo que éste se encuentra oculto. Si acudimos a la ficha Vista y desde el grupo Ventana podemos elegir el botón Mostrar para visualizar dicho archivo y posteriormente el botón Ocultar para que no se visualice pese a estar abierto:
Este archivo se llama libro de macros personal y se utiliza como alojamiento global de macros para todas las macros que, fueran guardadas desde el libro que fueran guardadas, se decidieron albergar en el libro de macros personal en vez de, por ejemplo, el mismo libro -que, por otro lado, suele ser la opción más habitual-. Sin embargo, utilizando el libro de macros personal, dado que a este archivo tenemos acceso desde cualquier libro de cálculo -recordemos que se encuentra siempre en segundo plano detrás de todo libro Excel-, podremos ejecutar una determinada macro desde cualquier otro libro. Se trata de un libro compartido a modo de contenedor de macros para que desde cualquier libro podamos acceder a dichas macros sin necesidad de haber sido grabadas en cada libro individualmente. Para trabajo en entornos de red es una opción muy interesante.
La ubicación física en disco de este archivo de macros personal (trabajando con Windows 7, 8.1 y 10) es:
C:\Usuarios\Usuario_de_sesión_Windows (por ejemplo Luis)\AppData\Roaming\Microsoft\Excel\XLSTART
La ruta de disco donde se encontraba en:
C:\Documents and Settings\Usuario_de_sesión_Windows\Datos de programa\Microsoft\Excel\XLSTART
En el caso expuesto en esta imagen la sesión de Windows ha sido iniciada como usuario Administrador.
Si el libro actual de trabajo no tiene macros grabadas, el libro PERSONAL.XLSB sigue estando abierto pero sin dichas macros.
Si el libro actual tiene alguna macro grabada en el libro de macros personales podremos acceder a ellas de cara a ejecutarlas o bien desde:
A) El propio libro actual abierto. Observar que desde el panel inferior de Macros en, bajo la categoría Todos los libros abiertos nos la presenta, ya que, aunque oculto, el libro PERSONAL.XLSB, se encuentra abierto. La nomenclatura es PERSONAL.XLSB!nombre_de_la_macro:
Esto significa que la macro llamada EJEMPLO está guardada en el libro PERSONAL.XLSB.
B) El libro de macros personal, es decir, abriendo directamente el archivo PERSONAL.XLSB:
Si el libro de macros personal se visualiza y se cierra explícitamente por parte del usuario, no podrá ser grabada desde un libro de trabajo una macro en el libro de macros personal. Éste tiene que encontrarse necesariamente abierto, ya sea de forma visible o bien oculto. De no ser así, el mensaje que se presenta por pantalla es el siguiente: