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

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

Пользовательские меню в Google Docs, Sheets, Slides или Forms

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. На сайте Google нажмите Еще > Управление сайтом .
  2. На боковой панели нажмите «Сценарии приложений» , затем «Добавить новый скрипт» , чтобы создать скрипт, привязанный к сайту.
  3. Удалите любой код в редакторе сценариев и вставьте приведенный ниже код, который будет отправлять электронное письмо, когда пользователь щелкает ссылку.

      function sitesLink() {
        var recipient = Session.getActiveUser().getEmail();
        GmailApp.sendEmail(recipient, 'Email from your site', 'You clicked a link!');
      }
    
  4. Вернитесь на сайт Google и отредактируйте страницу. Введите метку, которая станет ссылкой, например Click me , затем выделите текст и выберите «Вставить» > «Ссылка» .

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

  6. Нажмите Сохранить в верхней части страницы.

  7. Нажмите на ссылку, которую вы добавили на страницу.

  8. Появится диалоговое окно с сообщением о том, что скрипт требует авторизации. Нажмите ОК . Затем второе диалоговое окно запросит авторизацию для определенных служб Google. Внимательно прочитайте уведомление, затем нажмите «Разрешить» и «Закрыть» .

  9. Теперь, когда скрипт авторизован, снова нажмите ссылку, которую вы добавили на страницу. Теперь функция будет выполнена. Проверьте свою электронную почту , чтобы увидеть письмо, которое вы отправили сами себе.