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