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

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

Настраиваемые меню в документах, таблицах, презентациях или формах.

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

Только связанные скрипты могут создавать меню. Чтобы отобразить меню при открытии файла пользователем, напишите код меню внутри функции 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 Sheets также можно назначить функцию Apps Script изображению или рисунку, при условии, что скрипт привязан к электронной таблице. В следующем примере показано, как это настроить.

  1. В Google Sheets выберите пункт меню «Расширения» > «Скрипты приложений» , чтобы создать скрипт, привязанный к электронной таблице.
  2. Удалите весь код в редакторе скриптов и вставьте приведенный ниже код.
function showMessageBox() {
  SpreadsheetApp.getUi().alert('You clicked it!');
}
  1. Вернитесь в меню «Листы» и вставьте изображение или рисунок, выбрав «Вставка» > «Изображение» или «Вставка» > «Рисунок» .
  2. После вставки изображения или рисунка щелкните по нему. В правом верхнем углу появится небольшое выпадающее меню. Щелкните по нему и выберите «Назначить скрипт» .
  3. В появившемся диалоговом окне введите имя функции Apps Script, которую вы хотите запустить, без скобок — в данном случае, showMessageBox . Нажмите ОК .
  4. Щелкните по изображению или рисунку еще раз. Теперь функция будет выполнена.

Выполнение скрипта запускается только при нажатии на изображение или рисунок в веб-браузере. Скрипт не выполняется при нажатии на изображение или рисунок на мобильном устройстве.