基本方針
可以在同一個 Apps Script 專案中使用多個腳本。不過,如果存在相同函數名稱或相同觸發條件,可能會覆寫其中一方的處理,或導致同一處理執行多次。
為了安全使用,請每追加一個腳本,就依序保存、授權、重新載入並確認動作。確認沒有問題後,再追加下一個腳本。
共通選單入口範例
function onOpen(e) {
KOKOCAL_buildMenu(e);
}
function KOKOCAL_buildMenu(e) {
const ui = SpreadsheetApp.getUi();
const menu = ui.createMenu('KOKOCAL');
if (typeof KOKOCAL_IncrementalSync_registerMenu === 'function') {
KOKOCAL_IncrementalSync_registerMenu(menu);
}
if (typeof KOKOCAL_DuplicateFinder_registerMenu === 'function') {
KOKOCAL_DuplicateFinder_registerMenu(menu);
}
menu.addToUi();
}目前的生成程式碼會由 KOKOCAL_Menu.gs 擔任這個角色。各功能檔案提供 KOKOCAL_<功能名>_registerMenu(menu),只把自己的項目加入共通 KOKOCAL 選單。
追加多個腳本時的手順
- 1
追加前備份既有程式碼
複製既有的 .gs 與 HTML 檔案,先建立可還原的狀態再開始追加作業。業務檔案也建議盡可能備份檔案本身。
- 2
整理專案名稱與檔案名稱
放入多個腳本時,請清楚管理 Apps Script 專案名稱、KOKOCAL_Menu.gs、KOKOCAL_<功能名>.gs 與 HTML 檔案名稱。
- 3
確認函數名稱是否重複
同一專案中若已有同名函數,後貼上的函數可能覆寫行為,或執行非預期處理。
- 4
只保留一個 KOKOCAL_Menu.gs
上方選單的入口集中在 KOKOCAL_Menu.gs。請不要保留多個不同內容的 KOKOCAL_Menu.gs,而是使用一個最新版本。
- 5
確認選單名稱與選單項目
多個功能會整理在上方的 KOKOCAL 選單中。請確認已安裝的各功能是否顯示為選單項目。
- 6
不要重複註冊觸發條件
多次執行初始設定函數,可能會重複建立相同時間驅動或安裝型觸發條件。請在觸發條件列表確認是否有不需要的項目。
追加前後的確認項目
檔案名稱
確認 KOKOCAL_Menu.gs、KOKOCAL_<功能名>.gs、HTML 檔案與輔助檔案名稱是否與導入手順一致。
函數名稱
確認 setup、run、registerMenu 等函數名稱是否已存在於既有程式碼。以 KOKOCAL_ 開頭的函數,是為多腳本使用而固有化的函數。
選單
確認 Google 試算表或 Google 簡報上方是否顯示 KOKOCAL 選單,且其中包含預期功能項目。
觸發條件
在 Apps Script 的觸發條件畫面確認相同處理是否被重複註冊。
權限
追加多個腳本後,授權範圍可能增加。請確認授權畫面內容後再允許。
動作確認
使用正式資料前,請用複製檔案或少量資料逐一確認各選單動作。
注意事項
onOpen 集中在 KOKOCAL_Menu.gs
同時使用多個腳本時,onOpen 只放在 KOKOCAL_Menu.gs。各功能透過 KOKOCAL_<功能名>_registerMenu(menu) 註冊到共通選單。
安裝型觸發條件使用固有函數名稱
差分同步的表單送出或編輯偵測等,會由 KOKOCAL_IncrementalSync_setup 使用 KOKOCAL_ 開頭的固有函數名稱註冊觸發條件。請不要手動追加同名觸發條件。
HTML 檔案名稱需確認大小寫
Apps Script 的 HTML 檔案名稱,需要與程式碼中 createHtmlOutputFromFile 指定的名稱一致。
授權前請確認內容
追加腳本後,可能會要求試算表、簡報、觸發條件等存取權限。請確認內容後再允許。
Guide
相關指南
處理多個腳本前後,也建議確認 Apps Script 基礎與代表性的個別指南。