Macros de Hojas de cálculo de Google

Hojas de cálculo de Google te permite grabar macros que duplican una serie específica de interacciones de la IU que definas. Una vez que hayas grabado una macro, puedes vincularla a una combinación de teclas en el formato Ctrl+Alt+Shift+Number. Puedes usar ese atajo para volver a ejecutar rápidamente los pasos exactos de la macro, por lo general, en un lugar diferente o en datos diferentes. También puedes activar la macro desde el menú Extensiones > Macros de Hojas de cálculo de Google.

Cuando grabas una macro, Hojas de cálculo de Google crea automáticamente una función de Apps Script (la función de macro) que replica los pasos de la macro. La función de macro se agrega a un proyecto de Apps Script vinculado a la hoja, en un archivo titulado macros.gs. En caso de que ya haya un archivo de proyecto vinculado a la hoja con ese nombre, se adjunta la función de macro. Hojas de cálculo de Google también actualiza automáticamente el manifest del proyecto de secuencia de comandos, ya que registra el nombre y la combinación de teclas asignados a la macro.

Como cada macro grabada se define por completo en Apps Script, puedes editarlas directamente en el editor de Apps Script. Incluso puedes escribir macros desde cero en Apps Script o tomar funciones que ya escribiste y convertirlas en macros.

Cómo crear macros en Apps Script

Puedes tomar funciones escritas en Apps Script y usarlas como funciones de macro. La forma más sencilla de hacerlo es importar una función existente desde el editor de Hojas de cálculo de Google.

Como alternativa, puedes crear macros en el editor de Apps Script. Para ello, sigue estos pasos:

  1. En la IU de Hojas de cálculo de Google, selecciona Extensiones > Apps Script para abrir la secuencia de comandos vinculada a la hoja en el editor de Apps Script.
  2. Escribe la función de macro. Las funciones de macro no deben tomar argumentos ni mostrar valores.
  3. Edita el manifiesto de la secuencia de comandos para crear la macro y vincularla a la función de macro. Asóciale un nombre y un atajo de teclado únicos.
  4. Guarda el proyecto de secuencia de comandos. La macro estará disponible para usarse en la hoja.
  5. Prueba la función de macro en la hoja para verificar que funcione según lo previsto.

Edición de macros

Para editar macros adjuntas a una hoja, sigue estos pasos:

  1. En la IU de Hojas de cálculo de Google, selecciona Extensiones > Macros > Administrar macros.
  2. Busca la macro que deseas editar y selecciona > Editar macro. Se abrirá el editor de Apps Script en el archivo del proyecto que contiene la función de macro.
  3. Edita la función de macro para cambiar su comportamiento.
  4. Guarda el proyecto de secuencia de comandos. La macro estará disponible para usarse en la hoja.
  5. Prueba la función de macro en la hoja para verificar que funcione según lo previsto.

Importa funciones como macros

Si ya hay una secuencia de comandos vinculada a una hoja, puedes import una función en la secuencia de comandos como una macro nueva y, luego, asignarle una combinación de teclas. Para ello, puedes editar el archivo de manifiesto y agregar otro elemento a la propiedad sheets.macros[].

Como alternativa, sigue estos pasos para importar una función como macro desde la IU de Hojas de cálculo:

  1. En la IU de Hojas de cálculo de Google, selecciona Extensiones > Macros > Importar.
  2. Selecciona una función de la lista presentada y, luego, haz clic en Agregar función.
  3. Selecciona para cerrar el diálogo.
  4. Selecciona Extensiones > Macros > Administrar macros.
  5. Busca la función que acabas de importar en la lista. Asigna un atajo de teclado único a la macro. También puedes cambiar el nombre de la macro aquí. El nombre se establece de forma predeterminada en el nombre de la función.
  6. Haz clic en Actualizar para guardar la configuración de la macro.

Estructura del manifiesto para macros

En el siguiente fragmento de ejemplo de archivo de manifiesto, se muestra la sección de un manifest que define las macros de Hojas de cálculo de Google. La sección sheets del manifiesto define el nombre y la combinación de teclas asignadas a la macro, y el nombre de la función de macro.

  {
    ...
    "sheets": {
      "macros": [{
        "menuName": "QuickRowSum",
        "functionName": "calculateRowSum",
        "defaultShortcut": "Ctrl+Alt+Shift+1"
      }, {
        "menuName": "Headerfy",
        "functionName": "updateToHeaderStyle",
        "defaultShortcut": "Ctrl+Alt+Shift+2"
      }]
    }
  }

Consulta el recurso de manifiesto de macros de Hojas de cálculo para obtener más detalles sobre cómo se construyen los manifiestos de macros de Hojas de cálculo.

Prácticas recomendadas

Cuando crees o administres macros en Apps Script, te recomendamos que cumplas con los siguientes lineamientos.

  1. Las macros tienen un mejor rendimiento cuando son livianas. Cuando sea posible, limita la cantidad de acciones que realiza una macro.
  2. Las macros son más adecuadas para operaciones de memorización que deben repetirse con frecuencia con poca o ninguna configuración. Para otras operaciones, considera usar un elemento de menú personalizado en su lugar.
  3. Recuerda siempre que los atajos de teclado de las macros deben ser únicos y que una hoja determinada solo puede tener diez macros con atajos a la vez. Las macros adicionales solo se pueden ejecutar desde el menú Extensiones > Macros.
  4. Las macros que realizan cambios en una sola celda se pueden aplicar a un rango de celdas. Para ello, primero selecciona el rango completo y, luego, activa la macro. Esto significa que a menudo no es necesario crear macros que dupliquen la misma operación en un rango predefinido de celdas.

Cosas que no puedes hacer

Existen algunas restricciones sobre lo que puedes hacer con las macros:

Usa macros fuera de las secuencias de comandos vinculadas

Las macros se definen en secuencias de comandos vinculadas a Hojas de cálculo de Google específicas. Las definiciones de macros se ignoran si se definen en una secuencia de comandos independiente o una app web.

Cómo definir macros en complementos de Hojas de cálculo

No puedes distribuir definiciones de macros con un complemento de Hojas de cálculo. Los usuarios de ese complemento ignoran cualquier definición de macro en un proyecto de complemento de Hojas de cálculo.

Cómo distribuir macros en bibliotecas de secuencias de comandos

No puedes distribuir definiciones de macros con las bibliotecas de Apps Script.

Cómo usar macros fuera de Hojas de cálculo de Google

Las macros son solo una función de Hojas de cálculo de Google y no existen en Documentos, Formularios ni Presentaciones de Google.