Crear macros para Google Docs


macros google docAlinear los datos en una de las hojas de cálculo que utilizo para anotar los progresos de mis alumnos de 1º ESO se estaba volviendo un auténtico suplicio.

Por fortuna, los chicos de Google están dotando cada día de más funcionalidad a Google Drive y ya es posible definir secuencias de comandos en JavaScript pero con una API tan interesante que podríamos hacer casi cualquier cosa con cualquiera de los productos de Google que usemos (enviar correos electrónicos, añadir estadísticas de Google Analytics, crear eventos en el calendario, …).

Como siempre, el único límite es… nuestra imaginación y la mía, por «calenturienta» es una olla que está logrando alcanzar el punto de ebullición con el abanico de posibilidades que se presenta ante nosotros 😉

Puesta en antecedentes

Echando de menos la posibilidad de rotar los textos que ofrecen productos como LibreOffice Writer me tenía que limitar a acordarme de pulsar CTRL+ENTER tras escribir cada carácter de una palabra para lograr el efecto deseado

alinear datos verticalmente en hoja de cálculo de google

«Cansado» tras tener que hacerlo más de dos ocasiones me decidí a utilizar las «macros» de Google Drive: sabía que existían pero no había encontrado la excusa/ganas para ponerme a investigar cómo funcionaban 😉

¡Tenía que haberlo hecho antes!

Creando una macro

Seleccionamos la opción Herramientas > Editor de secuencia de comandos

crear funciones google calc

e indicamos el tipo de proyecto a crear (en mi caso se trata de una hoja de cálculo)

crear macro para hoja de cálculo

Automáticamente obtendremos un esqueleto con el código base listo para poder empezar a definir la funcionalidad que deseamos crear.

Observa la función onOpen() donde podemos definir nuestras propias opciones de menú, facilitando de este modo acceder a los comandos que creemos.

crear menú de opciones en google docs

NOTA: para que aparezca el menú la primera vez tendrás que ejecutar el código

macros en gdrive

Alineación vertical

Gracias a la fantástica documentación de la API existente pude lograr el objetivo que me marqué al principio (rotar el texto) creando el siguiente código en JavaScript


function alinearVerticalmente()
{
 var activeSheet = SpreadsheetApp.getActiveSheet();
 var range = activeSheet.getActiveRange();

 var valores=range.getValues();

 for(var i=0;i<valores.length;i++){
   for(var j=0;j<valores[i].length;j++){
     valores[i][j]=valores[i][j].toString().split("").join("\n");
   }
 }

 range.setValues(valores);
}

Creo que no merece la pena alargar el artículo con los detalles concretos; si alguien desea cualquier aclaración o ampliar información no tiene mas que pedirlo en los comentarios 😉

Conclusión

Fantástica posibilidad la de crear nuestras propias macros y funciones (¿echas de meno alguna función existente en hojas de cálculo como Excel o LibreOffice Calc?… ¡créala tú mismo! ;)) utilizando todos y cada uno de los servicios de Google (incluidos en la API)

Al principio puede que te cueste acostumbrarte a programar para Google Drive pero, a poco que le dediques un rato, no dejarás de inventar nuevas opciones para tus documentos y, si no terminas de cogerle el punto, prueba a buscar en el amplio repositorio de scripts que otros usuarios ya han publicado.

instalar nueva funcionalidad en google docs

38 comentarios en “Crear macros para Google Docs

      1. Hola que tal, esta buena la macro para los que iniciamos, podrias ayudarme con una uqe me mande una alerta o notificacion al correo, es de fechas de vencimientos

        Me gusta

  1. necesito crear una macro para q no me reciba cedulas duplicadas en un formulario de google me podrian ayudar es para un trabajo y la verdad no se como hacerle!!

    Me gusta

  2. Yei! muy util!

    Oye, yo he estado buscando una solucion a lo siguiente:

    Quisiera poder crear eventos de calendar en automatico al ingresar una fecha a cierta celda. Ejemplo, cuando yo ponga 2 de feb en «x» celda, en automatico se cree un evento en calendar y tome en consideracion los horarios establecidos en celdas contiguas y agregue informacion de la misma manera.

    No he encontrado ningun complemento que me dé esta funcion, no se si exista o quizas con alguna macro.

    Gracias!

    Me gusta

  3. Buenas tardes. Tengo una consulta, tengo una hoja de cálculo con extensión de macros .xlsm que he subido a Google Drive para compartirlo. Pero sucede que no puede abrirse, es decir me sale un mensaje » el archivo no existe», a pesar de enviarlo a mí misma e intentar abrirlo desde mi pc. Hay posibilidad de ejecutar una macro en drive?… Gracias desde ya por el apoyo.

    Me gusta

  4. Amigo muy interesante tu ejemplo.! Me recomendarias alguna pagina o blog para aprender a programar en apps script por favor. Estoy interesado en crear una secuencia de comandos que me permite copiar datos de una hoja de calculo en google, pasarlos a otra hoja del mismo documento y que se ordenen en funcion de un parametro por ejemplo fecha . Espero puedas ayudarme .Gracias.! Saludos.!

    Me gusta

    1. Desgraciadamente no conozco ninguna pues soy autodidacta y por «deformación» profesional me apaño con la documentación de los frameworks o librerías.

      La de Google Drive es especialmente buena y con bastantes ejemplos… te recomendaría empezar por ahí

      Suerte y un saludo

      Me gusta

  5. Buenas, lo he intentado hacer pero cuando he creado la secuencia, y la quiero usar dice que esto ha cambiado y que me vaya a complementos, desde el cual solo puedo instalar complementos que otros desarrolladores han hecho ¿qué tengo que hacer?

    Me gusta

  6. Buenas tardes:
    Actualmente soy usuario de Excel, me he interesado por los formularios y hojas de calculo de Google, es posible que los formularios interactuen con las hojas de calculo?, es posible que en los formularios se valide datos con base en una lista?, es decir seleccionar algun dato que este contenido en una lista, validar entradas de datos numericos, etc.

    Me gusta

  7. como puedo hacer una macro o algo que me genere una alerta para el vencimiento de contratos y me la mande a correo de gmail. ageradeceria mucho de tu ayuda.

    Me gusta

  8. hola gracias por la información hice un formulario en drive me enlaza a una hoja de calculo de google docs instale flubaroo para «calificar» unas respuestas del formulario pero necesito solo enviar un correo cuando una de respuestas este mal, me podrías orientar como podría hacerlo

    Me gusta

  9. Hola! Util y alentador tu articulo, por un momento llegue a pensar que era imposible el crear una macro en google drive. Pero tengo una pequeña duda. Lo que pasa es que he estado trabajando directamente en un excel creando varias macros entorno a 3 hojas del mismo archivo que tienen como finalidad poder administrar de mejor manera inventarios, stocks y cosas por el estilo. Como ya llevo bien avanzado este tema empece a indagar en la posibilidad de subir estas macros a google drive. Pero no he encontrado una forma clara de hacerlo. ¿Sabes tu como podría realizarlo? o, por ultimo, ¿Donde se expllica claramente como «traspasar» macros desde excel a drive?
    De antemano muchas gracias y saludos!

    Me gusta

  10. Buen día, quisiera saber si se puede hacer un comando, para que al modificar una hoja de texto en google docs, se tenga la opción de insertar objeto. Donde el objeto sea: cierto rango de celdas de una hoja de cálculo, y cuando lo requiera las pueda actualizar, y que no se eliminen las fórmulas que inserte en las celdas.
    Ya que actualmente, traté de hacerlo, subiendo un archivo de word, ya con esas características, y las celdas que inserté me las convierte en imagen al abrirse el archivo en google docs.
    De antemano agradezco su apoyo.

    Me gusta

  11. Buen día,
    Agradecería me digan si se puede hacer un comando para que pueda insertar un cierto rango de celdas de una hoja de cálculo a una hoja de texto en google docs.
    Lo que quisiera es que se pudiese insertar cualquier objeto en la hoja de texto, como en el word, en este caso unas celdas que contienen fórmulas…
    Les agradezco de antemano, saludos.

    Me gusta

      1. Hola, disculpa por postear 2 veces, no me aparecía el comentario…y sí lo que quisiera es poder insertar en un documento de texto un cierto rango de celdas de una hoja de cálculo y que me respete las fórmulas que hay en ellas…en realidad requiero que al hacer clic en esas celdas me permita modificarlas ahí mismo en la hoja de texto…Igual a la opción que tiene el Word, de insertar objeto> a partir de un archivo existente…
        Gracias!

        Me gusta

        1. No te disculpes, no tenías por qué saber que el primer comentario estaba «moderado».

          La funcionalidad que pides, como ya sabrás, no está incluida entre las opciones por defecto de Google Docs.

          Actualmente desconozco si existe alguna extensión para contar con dicha posibilidad pero suena muy interesante.

          Me anoto la duda para cuando pueda dedicarle un tiempo, siento no poder ofrecerte una solución inmediata.

          Si descubres algo antes, estaremos encantados si los compartes con nosotros.

          Suerte y un saludo

          Me gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.