如果指令碼是從文件建立,而非以獨立指令碼的形式建立,則會與該文件綁定。已繫結指令碼的附加檔案稱為「容器」。 繫結的腳本通常會像獨立腳本一樣運作,但不會顯示在 Google 雲端硬碟中,也無法從繫結的檔案中分離,且會獲得一些上層檔案的特殊權限。
請注意,指令碼也可以綁定至 Google 協作平台,但這些指令碼幾乎總是部署為網頁應用程式。繫結至 Google 試算表、文件、簡報或表單的指令碼也可能變成網頁應用程式,不過這種情況並不常見。
建立繫結指令碼
Google 文件、試算表或簡報
如要在 Google 文件、試算表或簡報中建立繫結指令碼,請在 Google 文件、試算表或 Google 簡報中開啟簡報,然後依序按一下「擴充功能」>「Apps Script」。日後如要重新開啟指令碼,請執行相同的操作,或從 Apps Script 資訊主頁開啟指令碼。
Google 表單
如要在 Google 表單中建立繫結指令碼,請開啟表單,然後依序按一下「更多」圖示 >「指令碼編輯器」。如要日後重新開啟指令碼,請執行相同的操作,或從 Apps Script 資訊主頁開啟指令碼。
特殊方法
繫結指令碼可以呼叫獨立指令碼無法呼叫的幾種方法:
getActiveSpreadsheet()
、getActiveDocument()
、getActivePresentation()
和getActiveForm()
可讓已繫結的劇本檔案在未參照檔案 ID 的情況下,參照其父項檔案。getUi
可讓繫結的指令碼存取其父項檔案的使用者介面,以便新增自訂選單、對話方塊和側欄。- 在 Google 試算表中,
getActiveSheet()
、getActiveRange()
和getActiveCell()
可讓指令碼判斷使用者的目前工作表、所選儲存格範圍或所選個別儲存格。setActiveSheet(sheet)
和setActiveRange(range)
可讓指令碼變更這些選項。 - 在 Google 文件中,
getActiveTab()
、getCursor()
和getSelection()
可讓指令碼判斷使用者的目前分頁、使用者游標的位置或所選文字。setActiveTab(tabId)
、setCursor(position)
和setSelection(range)
可讓指令碼變更這些選項。
詳情請參閱擴充 Google 試算表的指南或擴充 Google 文件的指南。
自訂選單、對話方塊和側欄
綁定指令碼可透過新增自訂選單和對話方塊或側欄,自訂 Google 試算表、文件和表單。不過請注意,指令碼只能與開啟檔案的目前例項使用者介面互動。也就是說,綁定至一個文件的指令碼無法影響其他文件的使用者介面。
外掛程式
外掛程式會在 Gmail、Google 試算表、文件、簡報和表單中執行。如果您已開發已繫結或獨立的程式碼,並想與全世界分享,Apps Script 可讓您發布程式碼做為外掛程式,讓其他使用者可從外掛程式商店安裝。
觸發條件
繫結指令碼可使用簡單的觸發事件,例如特殊的 onOpen()
函式,當具有編輯權限的使用者開啟檔案時,這類觸發事件就會自動執行。與所有類型的指令碼一樣,這些指令碼也可以使用可安裝的觸發事件。
自訂函式
「自訂函式」是指令碼繫結至 Google 試算表的函式,您可以使用語法 =myFunctionName()
直接從儲存格呼叫。因此,自訂函式與 Google 試算表中的數百個內建函式相似,例如 AVERAGE
或 SUM
,唯一的差異在於您定義自訂函式的行為。
存取繫結的指令碼
只有具備編輯容器權限的使用者,才能執行綁定的指令碼。協作者如果只有檢視權限,就無法開啟指令碼編輯器,但如果他們建立容器檔案的副本,就會成為副本的擁有者,並可查看及執行指令碼副本。
如要瞭解如何分享指令碼的容器檔案,請參閱「透過 Google 雲端硬碟共用檔案」。