如果指令碼是從 Google 試算表、文件、簡報或表單檔案建立,而非獨立指令碼,則會繫結至該檔案。繫結指令碼所附加的檔案稱為「容器」。 繫結指令碼的行為通常與獨立指令碼類似,但不會顯示在 Google 雲端硬碟中,也無法從繫結的檔案中分離,而且會獲得對上層檔案的幾項特殊權限。
請注意,指令碼也可以繫結至 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 試算表、文件和表單。但請注意,指令碼只能與目前開啟檔案例項的使用者介面互動。也就是說,繫結至某份文件的指令碼無法影響另一份文件的使用者介面。
觸發條件
繫結指令碼可以使用簡單觸發程序,例如特殊 onOpen()
函式,只要使用者開啟具有編輯權限的檔案,系統就會自動執行該函式。與所有類型的指令碼一樣,這些指令碼也可以使用可安裝的觸發條件。
自訂函式
自訂函式是繫結至 Google 試算表的指令碼中的函式,您可以使用 =myFunctionName()
語法,直接從儲存格呼叫該函式。因此,自訂函式與 Google 試算表中的數百個內建函式 (例如 AVERAGE
或 SUM
) 類似,但自訂函式的行為是由您定義。
存取繫結指令碼
只有具備容器編輯權限的使用者,才能執行容器的繫結指令碼。 如果協作者只有檢視權限,就無法開啟指令碼編輯器。不過,如果他們建立容器檔案的副本,就會成為副本的擁有者,並可查看及執行指令碼副本。
如要瞭解如何共用指令碼的容器檔案,請參閱「透過 Google 雲端硬碟共用檔案」。