Menús personalizados en Google Workspace

Las secuencias de comandos pueden extender ciertos productos de Google mediante la incorporación de elementos de la interfaz de usuario que, cuando se hacen clic en ellos, ejecutan una función de Apps Script. El ejemplo más común es ejecutar una secuencia de comandos desde un elemento de menú personalizado en Documentos, Hojas de cálculo, Presentaciones o Formularios de Google, pero las funciones de secuencias de comandos también se pueden activar mediante un clic en imágenes y dibujos en Hojas de cálculo de Google.

Menús personalizados en Documentos, Hojas de cálculo y Presentaciones de Google

o Formularios

Apps Script puede agregar menús nuevos en Documentos, Hojas de cálculo, Presentaciones o Formularios de Google, y cada elemento del menú está vinculado a una función en una secuencia de comandos. (En Formularios de Google, los menús personalizados solo son visibles para un editor que abre el formulario a fin de modificarlo, no para un usuario que abre el formulario para responder).

Una secuencia de comandos solo puede crear un menú si está vinculado al documento, hoja de cálculo o formulario. Para mostrar el menú cuando el usuario abre un archivo, escribe el código del menú en una función onOpen().

En el siguiente ejemplo, se muestra cómo agregar un menú con un elemento, seguido de un separador visual y, luego, un submenú que contiene otro elemento. (Ten en cuenta que, en Hojas de cálculo de Google, a menos que uses la versión nueva, debes usar la sintaxis addMenu() en su lugar, y no son posibles los submenús). Cuando el usuario selecciona cualquiera de los elementos del menú, la función correspondiente abre un diálogo de alerta. Para obtener más información sobre los tipos de diálogos que puedes abrir, consulta la guía de diálogos y barras laterales.

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp or FormApp.
  ui.createMenu('Custom Menu')
      .addItem('First item', 'menuItem1')
      .addSeparator()
      .addSubMenu(ui.createMenu('Sub-menu')
          .addItem('Second item', 'menuItem2'))
      .addToUi();
}

function menuItem1() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
     .alert('You clicked the first menu item!');
}

function menuItem2() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
     .alert('You clicked the second menu item!');
}

Un documento, una hoja de cálculo, una presentación o un formulario solo puede contener un menú con un nombre determinado. Si la misma secuencia de comandos o alguna otra agrega un menú con el mismo nombre, el menú nuevo reemplaza al anterior. Los menús no se pueden quitar mientras el archivo está abierto, aunque puedes escribir la función onOpen() para omitir el menú en el futuro si se configura una propiedad determinada.

Imágenes y dibujos en los que se puede hacer clic en Hojas de cálculo de Google

También puedes asignar una función de Apps Script a una imagen o un dibujo en Hojas de cálculo de Google, siempre que la secuencia de comandos esté vinculada a la hoja de cálculo. En el siguiente ejemplo, se muestra cómo realizar la configuración.

  1. En Hojas de cálculo de Google, selecciona el elemento de menú Extensiones > Apps Script para crear una secuencia de comandos vinculada a la hoja de cálculo.
  2. Borre cualquier código que haya en el editor de secuencias de comandos y pegue el código que se encuentra a continuación.

      function showMessageBox() {
        Browser.msgBox('You clicked it!');
      }
    
  3. Regresa a Hojas de cálculo y, luego, selecciona Insertar > Imagen o Insertar > Dibujo para insertar una imagen o un dibujo.

  4. Después de insertar la imagen o el dibujo, haz clic en ella. Aparecerá un pequeño selector de menú desplegable en la esquina superior derecha. Haz clic en ella y elige Asignar secuencia de comandos.

  5. En el cuadro de diálogo que aparece, escribe el nombre de la función de Apps Script que deseas ejecutar, sin paréntesis; en este caso, showMessageBox. Haz clic en Aceptar.

  6. Haz clic en la imagen o en el dibujo nuevamente. Ahora, se ejecutará la función.

También puedes asignar una función de Apps Script a un vínculo en Google Sites, siempre que la secuencia de comandos esté vinculada al sitio. En el siguiente ejemplo, se muestra cómo realizar la configuración.

  1. Si se encuentra en un Sitio de Google, haga clic en Más > Administrar sitio.
  2. En la barra lateral, haz clic en Apps Script y, luego, en Add new script para crear una secuencia de comandos vinculada al sitio.
  3. Borra cualquier código del editor de secuencias de comandos y pega el código a continuación, que enviará un correo electrónico cuando el usuario haga clic en un vínculo.

      function sitesLink() {
        var recipient = Session.getActiveUser().getEmail();
        GmailApp.sendEmail(recipient, 'Email from your site', 'You clicked a link!');
      }
    
  4. Regresa al Sitio de Google y edita una página. Escribe una etiqueta que se convertirá en un vínculo, como Click me, luego destaca el texto y selecciona Insertar > Vincular.

  5. En el cuadro de diálogo que aparece, haz clic en Apps Script y, luego, en la función sitesLink que acabas de crear. Haz clic en Aceptar.

  6. Haz clic en Guardar en la parte superior de la página.

  7. Haz clic en el vínculo que agregaste a la página.

  8. Aparecerá un cuadro de diálogo en el que se le indicará que la secuencia de comandos requiere autorización. Haz clic en OK. Un segundo cuadro de diálogo solicitará autorización para servicios de Google específicos. Lee el aviso con atención, luego, haz clic en Permitir y, luego, en Cerrar.

  9. Ahora que la secuencia de comandos está autorizada, vuelve a hacer clic en el vínculo que agregaste a la página. Ahora, se ejecutará la función. Revisa tu correo electrónico para ver el correo electrónico que enviaste.