Cómo Grabar una Macro
Grabar una macro en Excel te permite agrupar varias acciones en una sola, lo cual es útil si te encuentras realizando ciertas secuencias de acciones con frecuencia. Con una macro puedes automatizar tareas menores comunes o flujos de trabajo completos.
Aunque grabar una macro es fácil de hacer, algunos conocimientos adicionales sobre cómo funciona la grabación y algunas «mejores prácticas» pueden ayudarte a dominar rápidamente las macros y a aumentar tu productividad.
Grabar una Macro
Para empezar a grabar una macro, haz clic en el botón «Grabar macro» situado en la parte inferior izquierda de la ventana de Excel. Esto mostrará el cuadro de diálogo «Grabar macro» .
En el cuadro de diálogo «Grabar macro», introduzca lo siguiente:
- Nombre de la macro: escriba un nombre único para su macro (para poder identificarla posteriormente)
- Tecla de acceso directo (opcional): le permite establecer un acceso directo de teclado para ejecutar la macro posteriormente. Escriba un solo carácter para asignar este atajo de teclado (para obtener los mejores resultados, utilice SHIFT cuando escriba el carácter para evitar conflictos con otros atajos de Excel)
- Guardar macro en: Esto establece en qué libro de trabajo se almacenará la macro, lo que afecta a cómo se puede utilizar
- «Este libro» (opción más común) significa que la macro sólo se podrá utilizar en el libro de trabajo actualmente activo
- «Libro de macros personal» hace que la macro pueda utilizarse en cualquier momento en cualquier libro de trabajo, almacenándola en un libro de trabajo oculto que Excel siempre tiene abierto
- «Libro Nuevo» (menos común) almacena las macros en un nuevo libro de trabajo; útil si está haciendo macros que no puede guardar en «Este libro de trabajo» por alguna razón (es decir, «Este libro de trabajo» es un archivo .xlsx compartido, no puede guardarlo como .xlsm, y el libro de trabajo de macros personal no es un buen ajuste para la macro)
Haga clic en «Aceptar» para iniciar la grabación y, a continuación, realice las acciones que desee grabar. Cuando haya terminado, haga clic de nuevo en el botón «Grabar macro» para detener la grabación (el icono del botón habrá cambiado a un indicador cuadrado de «Stop»)
Editar una Macro
Después de haber grabado una macro, es posible que quieras ver el código para editarlo. Puede acceder al código desde el cuadro de diálogo «Macros» siguiendo estos pasos:
- Seleccione la pestaña Ver y haga clic en el botón «Macros» (o haga clic en el menú desplegable y seleccione «Ver Macros»)
- En el diálogo de Macros, seleccione la macro que desea ver y haga clic en «Editar»
Esto hará que aparezca el Editor VBA, con el cursor en la primera línea de su macro. Desde aquí, puedes editar el código para darle más claridad, añadir lógica o eliminar código innecesario.
Para más información sobre la edición de macros, consulte el artículo Ver y editar macros.
Ejecutar una Macro
Por supuesto, querrá ejecutar su macro en algún momento. La forma general de ejecutar una macro es utilizar el cuadro de diálogo «Macros»:
- Abra el cuadro de diálogo de las macros como en la edición de una macro (véase más arriba)
- En el diálogo de Macros, seleccione la macro y haga clic en «Ejecutar»
Una mejor manera de ejecutar una macro es asignarla a un control de botón.
Para ello, primero tendrás que añadir la pestaña Desarrollador a la cinta de opciones. Empieza por hacer clic en Archivo > Opciones en la lista del borde izquierdo
En el cuadro de diálogo Opciones, selecciona Personalizar la cinta de opciones > Personalizar la cinta de opciones > Pestañas principales y añade una marca de verificación en la casilla «Programador» y haz clic en Aceptar.
Con la pestaña Programador activada, puede añadir un botón a su hoja de trabajo de la siguiente manera:
- Seleccione la pestaña «Desarrollador»
- Haga clic en el menú desplegable «Insertar» y seleccione el control Botón en Controles de formulario
- A continuación, mueva el ratón en cualquier lugar de la superficie de la hoja de cálculo, mantenga pulsado el botón izquierdo y arrastre el ratón para dibujar el contorno de un rectángulo. Cuando suelte el clic izquierdo, aparecerá un nuevo diálogo titulado «Asignar macro». Seleccione su macro y haga clic en «Aceptar».
Ahora tendrás la posibilidad de ejecutar tu macro con un solo clic, directamente desde la hoja de cálculo.
Para más información sobre los botones de Excel, consulta el artículo «Añadir un botón y asignar una macro en Excel».
Consejos para la Grabación de Macros
Como puedes ver, es fácil empezar a grabar macros – probablemente puedas hacer algunas macros efectivas de inmediato sin necesidad de leer más. Sin embargo, para dominar las macros, querrá saber cómo funciona el grabador y utilizar ese conocimiento para planificar sus acciones.
Lo Que Se Graba
Excel puede grabar muchas acciones, más de las que crees, y a menudo más de las que pretendes si no tienes cuidado. La grabadora de macros funciona registrando lo que hacen los clics del ratón y las pulsaciones de las teclas – cometer errores mientras se graba puede introducir algunos comportamientos extraños en su macro. La siguiente lista incluye un montón de acciones que no esperas que se graben, pero es importante entender cuánto registra Excel para que puedas planificar mejor tus macros:
- Seleccionar celdas usando el ratón o el teclado (nota: sólo se registra la última selección antes de otra acción; es decir, si seleccionas las celdas A1:C4 y luego seleccionas la celda D1, sólo se registra la selección de D1)
- Cambiar el texto, la fórmula o el formato de las celdas (para el texto y las fórmulas, los cambios sólo se registran después de pulsar Intro)
- Desplazamiento en una hoja de cálculo (cada fila/columna que se desplaza se registra)
- Mover la ventana de Excel de una posición a otra
- Activar otros libros u hojas de trabajo (haciendo clic en ellos con el ratón, o utilizando atajos de teclado como CTRL+PageUp)
- Añadir, eliminar y mover hojas
- Guardar un libro de trabajo, abrir o crear nuevos libros de trabajo
- Ejecutar otras macros
Todas estas acciones pueden introducir consecuencias no deseadas en tus macros. Por ejemplo: al grabar una macro para utilizarla en otros libros, si accidentalmente activas una hoja que no existe en esos otros libros, la macro puede fallar cuando intentes ejecutarla de nuevo
Lo Que No Se Graba
A pesar de todas las cosas que puedes grabar (accidentalmente), hay algunas cosas que no se graban:
- Mover el ratón
- Cambiar la cinta de opciones (es decir, personalizar la cinta de opciones o hacer clic en otras pestañas)
- Cualquier cosa que implique el Editor VBA
- Cualquier cosa que haga en Windows o en otros programas que no sean de Excel (por ejemplo: mientras que puede grabar el copiar/pegar de un libro de Excel a otro, no puede grabar el copiar/pegar de Microsoft Word o el Bloc de notas en Excel)
- Lógica – no puede hacer que Excel registre sus decisiones (ejemplo: si está seleccionando columnas en una tabla cuyos encabezados comienzan con «Pago_», Excel sólo registrará las direcciones de las columnas que copie – no entenderá que está decidiendo qué columnas seleccionar basándose en el encabezado)
- Acciones realizadas dentro de diálogos como el «Filtro avanzado» o el «Formato condicional» (sólo se registra el resultado de pulsar OK en un diálogo)
Mientras que estas cosas no pueden ser *grabadas*, pueden (en su mayoría) ser codificadas directamente en VBA si usted tiene el conocimiento de programación. La lógica especialmente es algo para aprovechar – el ejemplo dado PODRÍA ser codificado manualmente en una macro.
Utilice Combinaciones de Teclas de Fin de Fila Para Seleccionar Tablas
Cuando grabe una macro, en lugar de utilizar simplemente el ratón o las teclas de flecha para seleccionar tablas, debería intentar utilizar combinaciones de teclas de fin de fila. Esto se debe a que Excel registra las selecciones de celdas de forma diferente para las combinaciones de teclas de fin de fila. Considere la siguiente tabla:
Usar el ratón o las teclas de flecha para seleccionar esta tabla produciría el siguiente código:
Range("A1:C5").Select
La repetición de esta macro seleccionaría exactamente el mismo rango, cada vez. Si se añaden datos a la tabla, no serán seleccionados por la macro.
En su lugar, la tabla podría ser seleccionada con dos combinaciones de teclas: Mayúscula-Final-TeclaDerecha, seguida de Mayúscula-Final-Tecla-Abajo. Eso produciría este código en su lugar:
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Observe que no se dan rangos exactos, sino que se registran las combinaciones de teclas utilizadas. Ahora la macro no tiene que ser recodificada si la tabla se expande.
Aproveche las Referencias Relativas
Como se ha mencionado anteriormente, Excel registra las celdas exactas que seleccionas cuando utilizas el ratón o las teclas de dirección. Si te grabas creando una tabla en una hoja de cálculo, esa macro creará la tabla en el mismo lugar, cada vez. Esto se llama Referencia Absoluta.
Este comportamiento puede cambiarse, sin embargo, para grabar en su lugar las celdas con las que trabaja en relación con la celda seleccionada inicialmente. De esta manera, tu macro podría crear la tabla dondequiera que pongas el cursor.
Para activar las Referencias Relativas, seleccione la pestaña Desarrollador, y luego haga clic en«Usar Referencias Relativas» (esto es una conmutación; haga clic de nuevo para volver a la referenciación absoluta). Recuerde seleccionar la celda inicial antes de empezar a grabar.
Las Referencias Relativas no se registran universalmente – algunas funciones como el Filtro Avanzado o «Formatear como Tabla» requieren que el usuario introduzca un rango absoluto. Si utiliza Referencias Relativas, es posible que tenga que editar el código VBA de la macro más adelante, dependiendo de las funciones que haya grabado.
Mantenga la Sencillez
Aunque es tentador grabar montones y montones de tareas en una sola macro, es mejor mantener las macros pequeñas y centradas en la automatización de tareas específicas.
En primer lugar, es realmente difícil grabar una macro larga sin cometer errores. Incluso con un plan bien definido de clics del ratón y pulsaciones de teclas, los errores ocurren y pueden resultar frustrantes muy rápidamente.
En segundo lugar, las macros grandes son difíciles de depurar cuando algo va mal. Puede llevar mucho tiempo buscar en el código VBA para encontrar la causa del problema, e incluso cuando se encuentra el problema puede ser difícil de arreglar sin romper algo más. Debido a estas preocupaciones, a menudo es mejor dividir una macro larga en partes más pequeñas que se centran en cosas específicas. Por ejemplo, una macro que crea un informe puede dividirse en dos partes: una macro para importar y consolidar algunos datos, y otra macro para añadir formato al informe. Estas macros más pequeñas serán más fáciles de grabar, más fáciles de probar y más fáciles de depurar si algo va mal.