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

Скрипты могут расширять возможности некоторых продуктов Google, добавляя элементы пользовательского интерфейса, которые при нажатии на них выполняют функцию скрипта Apps. Наиболее распространённым примером является запуск скрипта из пользовательского пункта меню в Google Документах, Таблицах, Презентациях или Формах, но функции скрипта также можно запускать, нажимая на изображения и рисунки в Google Таблицах.

Пользовательские меню в Google Docs, Таблицах, Презентациях или Формах

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

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

В примере ниже показано, как добавить меню с одним пунктом, за которым следует визуальный разделитель , а затем подменю , содержащее другой пункт. (Обратите внимание, что в Google Таблицах, если вы не используете новую версию , вместо этого необходимо использовать синтаксис addMenu() , и подменю не поддерживаются.) Когда пользователь выбирает любой из пунктов меню, соответствующая функция открывает диалоговое окно с предупреждением . Подробнее о типах диалоговых окон, которые можно открыть, см. в руководстве по диалоговым окнам и боковым панелям .

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

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

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

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

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

      function showMessageBox() {
        Browser.msgBox('You clicked it!');
      }
    
  3. Вернитесь в Таблицы и вставьте изображение или рисунок, выбрав Вставка > Изображение или Вставка > Рисунок .

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

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

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