Скрипт привязан к файлу Google Таблиц, Документов, Презентаций или Форм, если он был создан на основе этого документа, а не как отдельный скрипт . Файл, к которому прикреплён привязанный скрипт, называется «контейнером». Привязанные скрипты обычно ведут себя как отдельные скрипты, за исключением того, что они не отображаются в Google Диске, их нельзя отсоединить от файла, к которому они привязаны, и они получают несколько особых привилегий по сравнению с родительским файлом.
Обратите внимание, что скрипты также можно привязывать к Google Сайтам, но эти скрипты почти всегда развёртываются как веб-приложения . Скрипты, привязанные к Google Таблицам, Документам, Презентациям или Формам, также могут стать веб-приложениями, хотя это встречается редко.
Создать связанный сценарий
Google Документы, Таблицы или Презентации
Чтобы создать привязанный скрипт в Google Docs, Sheets или Slides, откройте документ в Docs, электронную таблицу в Sheets или презентацию в Slides и нажмите «Расширения» > «Apps Script» . Чтобы повторно открыть скрипт в будущем, выполните те же действия или откройте скрипт на панели инструментов Apps Script .
Google Формы
Чтобы создать привязанный скрипт в Google Формах, откройте форму и нажмите «Подробнее > «Редактор скриптов» (Script editor ). Чтобы повторно открыть скрипт в будущем, выполните те же действия или откройте его на панели инструментов Apps Script .
Специальные методы
Связанные скрипты могут вызывать несколько методов, которые автономные скрипты не могут:
-
getActiveSpreadsheet()
,getActiveDocument()
,getActivePresentation()
иgetActiveForm()
позволяют привязанным скриптам ссылаться на родительский файл без ссылки на идентификатор файла. -
getUi
позволяет связанным скриптам получать доступ к пользовательскому интерфейсу своего родительского файла для добавления пользовательских меню, диалоговых окон и боковых панелей . - В Google Таблицах методы
getActiveSheet()
,getActiveRange()
иgetActiveCell()
позволяют скрипту определять текущий лист пользователя, выбранный диапазон ячеек или выбранную отдельную ячейку.setActiveSheet(sheet)
иsetActiveRange(range)
позволяют скрипту изменять эти выборки. - В Google Docs
getActiveTab()
,getCursor()
иgetSelection()
позволяют скрипту определять текущую вкладку пользователя, положение курсора пользователя или выделенный текст.setActiveTab(tabId)
,setCursor(position)
иsetSelection(range)
позволяют скрипту изменять эти выборки.
Более подробную информацию см. в руководстве по расширению Google Таблиц или в руководстве по расширению Google Документов .
Пользовательские меню, диалоги и боковые панели
Привязанные скрипты могут настраивать Google Таблицы, Документы и Формы, добавляя пользовательские меню , диалоговые окна или боковые панели . Однако следует помнить, что скрипт может взаимодействовать только с пользовательским интерфейсом текущего экземпляра открытого файла. То есть скрипт, привязанный к одному документу, не может влиять на пользовательский интерфейс другого документа.
Триггеры
Привязанные скрипты могут использовать простые триггеры , такие как специальная функция onOpen()
, которая автоматически запускается при открытии файла пользователем с правами на редактирование. Как и все типы скриптов, они также могут использовать устанавливаемые триггеры .
Пользовательские функции
Пользовательская функция — это функция в скрипте, привязанном к Google Таблицам, которую вы вызываете непосредственно из ячейки с помощью синтаксиса =myFunctionName()
. Таким образом, пользовательские функции аналогичны сотням встроенных функций в Таблицах, таких как AVERAGE
или SUM
за исключением того, что вы определяете поведение пользовательской функции.
Доступ к связанным скриптам
Только пользователи, имеющие разрешение на редактирование контейнера, могут запускать привязанный к нему скрипт. Соавторы, имеющие только право просмотра, не могут открыть редактор скриптов, хотя, создав копию файла контейнера, они становятся владельцами копии и могут видеть и запускать копию скрипта.
Чтобы узнать, как поделиться файлом-контейнером скрипта, обратитесь к статье Общий доступ к файлам из Google Диска .