Menús personalizados en Google Workspace

Las secuencias de comandos pueden extender ciertos productos de Google agregando elementos de interfaz de usuario. que, al hacer clic, 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 de Google o Formularios, pero las funciones de script también pueden activarse haciendo clic en las imágenes y dibujos en Hojas de cálculo de Google.

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

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

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

En el siguiente ejemplo, se muestra cómo agregar un menú con un elemento, seguido de el separador visual y, luego, submenú que contiene otro elemento. (Ten en cuenta que en Google Sheets, a menos que uses el nueva versión, debes usar el addMenu() la sintaxis y no es posible usar submenús). Cuando el usuario selecciona elemento de menú, una función correspondiente abre un Diálogo alert. Para ver más sobre los tipos de diálogos que puedes abrir, consulta la guía sobre diálogos y barras laterales.

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp, SlidesApp 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, SlidesApp or FormApp.
     .alert('You clicked the first menu item!');
}

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

Un documento, hoja de cálculo, presentación o formulario solo puede contener un menú con un nombre determinado. Si la misma secuencia de comandos u otra secuencia de comandos agrega un menú con la misma nombre, el nuevo menú reemplaza al antiguo. No se pueden quitar los menús mientras el archivo esté en curso está abierto, aunque puedes escribir tu 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 Google Sheets

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

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

      function showMessageBox() {
        Browser.msgBox('You clicked it!');
      }
    
  3. Vuelve a Hojas de cálculo e inserta una imagen o dibujo seleccionando Insertar > Imagen o Insertar > Dibujo.

  4. Después de insertar la imagen o el dibujo, haz clic en él. Un pequeño menú desplegable selector en la esquina superior derecha. Haz clic en él 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 OK.

  6. Vuelve a hacer clic en la imagen o el dibujo. Ahora se ejecuta la función.