Скрипты могут расширять некоторые продукты 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 Таблицах, если скрипт привязан к электронной таблице. Пример ниже показывает, как это настроить.
- В Google Sheets выберите пункт меню Extensions > Apps Script , чтобы создать сценарий, привязанный к электронной таблице.
Удалите любой код в редакторе скриптов и вставьте код ниже.
function showMessageBox() { Browser.msgBox('You clicked it!'); }
Вернитесь в «Листы» и вставьте изображение или рисунок, выбрав «Вставка» > «Изображение» или «Вставка» > «Рисунок» .
После вставки изображения или рисунка щелкните его. В правом верхнем углу появится небольшое раскрывающееся меню. Нажмите на нее и выберите «Назначить сценарий» .
В появившемся диалоговом окне введите имя функции Apps Script, которую вы хотите запустить, без круглых скобок — в данном случае
showMessageBox
. Нажмите ОК .Щелкните изображение или рисунок еще раз. Теперь функция будет выполнена.
Ссылки на скрипт в Google Sites
Вы также можете назначить функцию скрипта приложений для ссылки на Сайтах Google, если скрипт привязан к сайту. Пример ниже показывает, как это настроить.
- На сайте Google нажмите Еще > Управление сайтом .
- На боковой панели нажмите «Сценарии приложений» , затем «Добавить новый скрипт» , чтобы создать скрипт, привязанный к сайту.
Удалите любой код в редакторе сценариев и вставьте приведенный ниже код, который будет отправлять электронное письмо, когда пользователь щелкает ссылку.
function sitesLink() { var recipient = Session.getActiveUser().getEmail(); GmailApp.sendEmail(recipient, 'Email from your site', 'You clicked a link!'); }
Вернитесь на сайт Google и отредактируйте страницу. Введите метку, которая станет ссылкой, например
Click me
, затем выделите текст и выберите «Вставить» > «Ссылка» .В появившемся диалоговом окне щелкните Apps Script , затем щелкните только что созданную функцию
sitesLink
. Нажмите ОК .Нажмите Сохранить в верхней части страницы.
Нажмите на ссылку, которую вы добавили на страницу.
Появится диалоговое окно с сообщением о том, что скрипт требует авторизации. Нажмите ОК . Затем второе диалоговое окно запросит авторизацию для определенных служб Google. Внимательно прочитайте уведомление, затем нажмите «Разрешить» и «Закрыть» .
Теперь, когда скрипт авторизован, снова нажмите ссылку, которую вы добавили на страницу. Теперь функция будет выполнена. Проверьте свою электронную почту , чтобы увидеть письмо, которое вы отправили сами себе.