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

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

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

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

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

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

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

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

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

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

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