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