Menus personalizados no Google Workspace

Os scripts podem estender determinados produtos do Google adicionando elementos da interface do usuário que, quando clicados, executam uma função do Apps Script. O exemplo mais comum é executar um script de um item de menu personalizado no Documentos, Planilhas, Apresentações ou Formulários Google, mas as funções de script também podem ser acionadas ao clicar em imagens e desenhos no Planilhas Google.

Menus personalizados no Documentos, Planilhas, Apresentações ou Formulários Google

O Apps Script pode adicionar novos menus no Documentos, Planilhas, Apresentações ou Formulários Google, com cada item do menu vinculado a uma função em um script. No Formulários Google, os menus personalizados ficam visíveis apenas para um editor que abre o formulário para modificá-lo, não para um usuário que abre o formulário para responder.

Um script só poderá criar um menu vinculado ao documento, à planilha ou ao formulário. Para exibir o menu quando o usuário abrir um arquivo, escreva o código do menu em uma função onOpen().

O exemplo abaixo mostra como adicionar um menu com um item, seguido por um separador visual e um submenu que contém outro item. No Planilhas Google, a menos que você esteja usando a nova versão, é necessário usar a sintaxe addMenu(). Não é possível usar submenus. Quando o usuário seleciona um item de menu, uma função correspondente abre uma caixa de diálogo de alerta. Para mais informações sobre os tipos de caixas de diálogo que podem ser abertas, consulte o guia para caixas de diálogo e barras laterais.

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!');
}

Um documento, planilha, apresentação ou formulário pode conter apenas um menu com um determinado nome. Se o mesmo script ou outro script adicionar um menu com o mesmo nome, o novo menu substituirá o antigo. Não é possível remover os menus enquanto o arquivo está aberto, mas é possível escrever a função onOpen() para pular o menu no futuro se uma determinada propriedade for definida.

Imagens e desenhos clicáveis no Planilhas Google

Também é possível atribuir uma função do Apps Script a uma imagem ou desenho no Planilhas Google, desde que o script esteja vinculado à planilha. O exemplo abaixo mostra como configurar isso.

  1. No Planilhas Google, selecione o item de menu Extensões > Apps Script para criar um script vinculado à planilha.
  2. Apague o código no editor de script (se houver algum) e cole o código abaixo.

      function showMessageBox() {
        Browser.msgBox('You clicked it!');
      }
    
  3. Volte para o Planilhas e insira uma imagem ou um desenho. Para isso, selecione Inserir > Imagem ou Inserir > Desenho.

  4. Depois de inserir a imagem ou o desenho, clique nela. Um pequeno seletor de menu suspenso será exibido no canto superior direito. Clique nele e escolha Atribuir script.

  5. Na caixa de diálogo exibida, digite o nome da função do Apps Script que você quer executar, sem parênteses, neste caso, showMessageBox. Clique em OK.

  6. Clique na imagem ou no desenho novamente. A função será executada.

Também é possível atribuir uma função do Apps Script a um link no Google Sites, desde que o script esteja vinculado ao site. O exemplo abaixo mostra como configurar isso.

  1. Em um site Google, clique em Mais > Gerenciar site.
  2. Na barra lateral, clique em Scripts do Google Apps e em Adicionar novo script para criar um script vinculado ao site.
  3. Exclua qualquer código no editor de script e cole o código abaixo, que enviará um e-mail quando o usuário clicar em um link.

      function sitesLink() {
        var recipient = Session.getActiveUser().getEmail();
        GmailApp.sendEmail(recipient, 'Email from your site', 'You clicked a link!');
      }
    
  4. Volte ao Google Site e edite uma página. Digite um rótulo que se tornará um link, como Click me, destaque o texto e selecione Inserir > Link.

  5. Na caixa de diálogo exibida, clique em Apps Script e na função sitesLink que você acabou de criar. Clique em OK.

  6. Clique em Salvar na parte superior da página.

  7. Clique no link adicionado à página.

  8. Uma caixa de diálogo será exibida informando que o script precisa de autorização. Clique em OK. Uma segunda caixa de diálogo solicitará autorização para serviços específicos do Google. Leia o aviso com atenção, clique em Permitir e depois em Fechar.

  9. Agora que o script está autorizado, clique no link que você adicionou à página novamente. A função será executada. Verifique seu e-mail para ver o e-mail que você mesmo enviou.