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