En este artículo vamos a ver como grabar macros en Google Sheets y que cosas hay que tener en cuenta al hacerlo.
Aquí pueden ver el video.
Que es una macro
El término macro se popularizó hace un par de décadas con Microsoft Excel.
Macro se refiere a un conjunto de operaciones que Excel «graba» y después podemos repetirlas con un solo comando.
Lo que en realidad sucede es que Excel genera una función personalizada para que el usuario después simplemente tenga que llamar a esa función (con un botón, con un comando, con un menú, automáticamente, etc), y ejecute ese comando
Esto es muy útil para operaciones repetitivas como formatear tablas o celdas, insertar ciertos datos, generar gráficas, y muchas más cosas.
El término macro después se popularizó y todo lo que fuera código se le denominó macro. Pero en realidad, macro solo se refiere a lo que Excel nos graba
Sheets no tenía códigos personalizados al principio. Entonces paso a paso ha ido actualizándose y nivelándose.
Primero incorporó la posibilidad de hacer códigos personalizados
Y en 2019 incluyó la opción de grabar código, es decir de generar sus propias macros
Entonces en concepto una macro en Excel es lo mismo que una macro en Sheets
Y como estamos hablando de hojas de caculo, en realidad el «detrás de escenas» en las dos aplicaciones es muy parecido.
Pero, como estamos hablando de dos lenguajes distintos (Visual Basic para Excel, Javascript para Sheets), es como hablar en francés y en español, hay cosas parecidas, pero tenemos que traducirlo todo.
Todo esto para decir que no puedo copiar un código de Excel y pasarlo a Sheets y viceversa (Seguramente ya debe haber alguien que se haya inventado un convertidor, o alguien lo debe estar desarrollando).
En que casos es útil una macro
Básicamente cuando queramos automatizar una acción repetitiva. Algunos casos que se me ocurren son:
- Un formato especifico de una celda
- Un formato especifico a una tabla
- Hacer un cálculo
- Agregar cierto número de filas o columnas
- Eliminar cierto número de filas o columnas
- Borrar el contenido de una celda o un grupo de celdas.
- Borrar el formato
- Copiar una fórmula y pegar un valor
- Insertar una pestaña
- Eliminar una pestaña
- Insertar una gráfica
- Insertar una tabla dinámica
Como crear una macro
Para crear una macro nos vamos a «Herramientas»>»Macros»>»Grabar macros»
Nos va a aparecer el siguiente cuadro, el cual se va a mantener visible hasta que terminemos nuestra macro.

A diferencia de grabar un video, al grabar una macro, el tiempo no importa, son las operaciones que hagamos dentro de sheets. En otras palabras, Sheets graba son los pasos.
Una vez terminemos nuestras operaciones. Damos click en Guardar y queda listo.
Nuestra primera Macro
Hagamos alguna operación muy sencilla, por ejemplo crear una nueva pestaña.
- «Herramientas»>»Macros»>»Grabar macros»
- Por ahora no nos preocupemos por las referencias absolutas o relativas. En este caso no importa
- Lo importante es que el botón tojo este «titilando»
- Agregamos una nueva pestaña
- En esta nueva pestaña escribamos en la celda A1 «Mi primera macro»
- Damos clic en Guardar.
- Le ponemos un nombre a nuestra macro (Ojala muy indicativo de lo que hace, nada de «Macro1»).
¡Y ya está! Así de fácil
Fíjense que unimos dos operaciones muy comunes y rutinarias (Crear una nueva pestaña y escribir algo en la primera celda), pero la automatizamos para que con solo un botón Sheets lo haga.
Después podríamos seguir añadiendo acciones como poner un formato, añadir más datos, eliminar columnas, o lo que se nos ocurriera.
Ejecutar una macro
Una vez hemos grabado una o varias macros, vamos a querer poder ejecutarlas.
La manera más sencilla de ejecutar una macro es ir a «Herramientas»>»Macros»>Nombre de mi macro
Sheets va a ir actualizando este menú con los nombres de las macros que hayamos grabado
Referencias
Es muy importante entender el concepto de las referencias absolutas y las referencias relativas al momento de granar nuestras macros.
Para simplificarlo, cuando queramos que la macro se aplique a la celda en la que estamos parados, o la de la derecha, la de la izquierda, la de abajo o la de arriba de la celda en la que estamos parados, usamos las referencias relativas
Por otro lado, si no importa donde este parado, siempre quiero aplicar mi formato o mis operaciones al mismo rango, las mismas filas, las mismas columnas o las mismas celdas, usamos las referencias absolutas.
Vamos a verlo en detalle
Referencias Relativas
Digamos que queremos hacer una macro que aplique un formato a la celda actual. Aquí aplica usar referencias relativas, porque la macro se va a aplicar a la celda en la que esté en ese momento.
En otras palabras, la referencia siempre cambia, dependiendo de la celda que esté activa, o la celda donde el usuario haya dado clic.
Para grabar macros con referencias relativas, simplemente sigamos los siguientes pasos:
- Antes de grabar la macro asegurémonos estar parados en la celda que queremos
- Vamos a «Herramientas»>»Macros»>»Grabar macros»
- Asegurémonos de tener seleccionada la opción «Usar referencias relativas»
- Una vez estemos grabando, no nos movamos a otra celda (a menos que esa sea nuestra intención)
- Guardemos la macro
Referencias Absolutas
Las referencias absolutas funcionan muy bien para formatear o hacer cálculos en tablas completas donde las columnas y las filas se mantienen fijas.
Para grabar una macro con referencias absolutas
- Antes de grabar la macro, no importa donde estemos «parados»
- Vamos a «Herramientas»>»Macros»>»Grabar macros»
- Asegurémonos de tener seleccionada la opción «Usar referencias absolutas»
- Una vez estemos grabando, no importa movernos a otra celda (lo único es que el código va a quedar con más «ruido»)
- Guardemos la macro
Editar el código de una macro
Una vez hacemos una macro, podemos ver su código y copiarlo, mejorarlo o simplemente estudiarlo.
Para esto nos vamos a Vamos a «Herramientas»>»Macros»>»Gestionar macros»
Después buscamos la macro que queremos editar, damos clic en los tres puntos a la derecha del nombre de la macro y seleccionamos la opción «Editar secuencia de comandos»
Esto me va a abrir una nueva pestaña y me va a llevar a mi editor de código de Google Apps Script (GAS)
Esto es muy útil para mejorar nuestra macro, pero también es muy útil cuando queremos hacer un código, pero hay algo que no sabemos bien como hacer, entonces haríamos una macro, y después entraríamos a copiar el código específico.
Conclusión
Como ven, grabar una macro no es un proceso complicado y es una muy buena introducción al maravilloso mundo de la automatización y de expandir nuestro Google Sheets.
Simplemente tengan cuidado con las referencias relativas y absolutas, y como siempre practiquen mucho
¿Alguna recomendación? ¿Algo específico que quieran saber? Déjenmelo saber en los comentarios
Respetado Juan, gracias por todas las enseñanzas que subes en tus videos, me ha sido de mucha utilidad. Quería preguntar si te envío un archivo de excel con macros, podrías orientarme como pasarlo a google sheet, tengo días tratando de replicarlo y no he podido. Mi nivel es bajo en excel y sheet, pero estoy tratando de automatizar algo. Logro hacer parte con tus enseñanzas pero me quedo sin resolver. Me da pena molestar, soy de Venezuela y entenderé si no puedes hacerlo.
Hola!
Espero hayas logrado hacerlo
Saludos!
Hola Juan. Llevo varios intentos para enlazar 2 macros grabadas pero no consigo me funcione correctamente (como necesito)
Necesito unir los datos de una celda (arriba) con otra celda (abajo) en la primera celda (arriba), y eliminar los datos de la celda copiada (abajo)
Por separado funcionan, envío los datos de la celda arriba a la de abajo a la izquierda y entonces uno en la de arriba las 2 de abajo, luego otra macro elimino los datos de las celdas de abajo (limpio las celdas)
Pero cuando uno las dos macros en una no funciona correctamente. He probando intercalando la función Utilities.sleep(xxxx) pero tampoco
Hola, Buen día, disculpa tienes algún video con una macro que funcione como Botón-Vínculo, me encanta tu manera de explicar, haces parecer todo muy fácil, saludos .
Hola, Juan S: Quisiera hacerte una consulta al respecto de esto, pues vi tu video y tuve en consideración lo que dices pero aun así, la macro que grabé no ejecutó los movimientos que esperaba.
Descripción: Intento mover los datos de proyectos de una hoja a otra y las notas que le asigne un profesor según cada criterio de evaluación. Entonces en ese sentido, me gustaría saber si puedes orientarme en lo que debo hacer 🙏. Te dejo un video que ilustra un poco lo que intento hacer: https://youtu.be/60nJSAGhc44. Gracias de antemano por tus comentarios
Hola Carlos
Mil gracias por escribir
La verdad es un poco dificil hacer esto con una macro grabada.
Te dejo este video que creo que hace lo que quieres hacer. Implica un poco de código pero no es tan complicado.
Quedo pendiente.
Un gran saludo!
Gracias Juan, si por favor pásame el link del video que haré la práctica y te comento. Eres un crack.
Que pena. Pensé que te lo había pasado
Aca va:
https://www.youtube.com/watch?v=1qW5d7IAFBQ
Saludos!