Пользовательские меню в Google Workspace

Скрипты позволяют расширять функциональность некоторых продуктов Google, добавляя элементы пользовательского интерфейса, которые при нажатии выполняют функцию Apps Script. Наиболее распространенный пример — запуск скрипта из пользовательского пункта меню в Google Docs, Sheets, Slides или Forms, но функции скриптов также могут запускаться при нажатии на изображения и рисунки в Google Sheets.

Настраиваемые меню в Google Docs, Sheets, Slides или Forms

С помощью Apps Script можно добавлять новые меню в Google Docs, Sheets, Slides или Forms, при этом каждый пункт меню привязан к функции в скрипте. (В Google Forms пользовательские меню видны только редактору, открывающему форму для ее изменения, а не пользователю, открывающему форму для ответа.)

Скрипт может создать меню только в том случае, если он привязан к документу, электронной таблице или форме. Чтобы отобразить меню при открытии файла пользователем, напишите код меню внутри функции onOpen() .

В приведенном ниже примере показано, как добавить меню с одним пунктом, за которым следует визуальный разделитель , а затем подменю , содержащее еще один пункт. Когда пользователь выбирает любой из пунктов меню, соответствующая функция открывает диалоговое окно предупреждения . Для получения дополнительной информации о типах открываемых диалоговых окон см. руководство по диалоговым окнам и боковым панелям .

function onOpen() {
  const 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!');
}

Документ, электронная таблица, презентация или форма могут содержать только одно меню с заданным именем. Если тот же скрипт или другой скрипт добавляет меню с тем же именем, новое меню заменяет старое. Меню нельзя удалить, пока файл открыт, хотя вы можете написать функцию onOpen() которая будет пропускать меню в будущем, если задано определенное свойство .

Интерактивные изображения и рисунки в Google Таблицах

В Google Sheets также можно назначить функцию Apps Script изображению или рисунку, при условии, что скрипт привязан к электронной таблице. Пример ниже показывает, как это настроить.

  1. В Google Таблицах выберите пункт меню «Расширения» > «Apps Script» , чтобы создать скрипт, привязанный к электронной таблице.
  2. Удалите весь код в редакторе скриптов и вставьте приведенный ниже код.

      function showMessageBox() {
        SpreadsheetApp.getUi().alert('You clicked it!');
      }
    
  3. Вернитесь в меню «Листы» и вставьте изображение или рисунок, выбрав «Вставка» > «Изображение» или «Вставка» > «Рисунок» .

  4. После вставки изображения или рисунка щелкните по нему. В правом верхнем углу появится небольшое выпадающее меню. Щелкните по нему и выберите «Назначить скрипт» .

  5. В появившемся диалоговом окне введите имя функции Apps Script, которую вы хотите запустить, без скобок — в данном случае, showMessageBox . Нажмите ОК .

  6. Щелкните по изображению или рисунку еще раз. Теперь функция будет выполнена.