自訂函式與巨集
自訂函式讓你在儲存格裡寫 =DOUBLE(A1) 這種自己定義的公式。巨集則是把你在畫面上的點擊錄成腳本,適合當「第一段 GAS」來讀。兩者都掛在繫結於該試算表的專案裡。
自訂函式
在 Code.gs 寫一個有回傳值的函式:
/**
* 把攝氏轉成華氏。
* @param {number} celsius 攝氏溫度
* @customfunction
*/
function CTOF(celsius) {
return celsius * 9 / 5 + 32;
}
儲存後,在儲存格輸入 =CTOF(36)。@customfunction 會讓試算表自動完成出現這個名字;JSDoc 的 @param 會變成公式說明。
限制(官方完整清單在 自訂函式指南):
- 必須回傳值,不能
setValue去改別的格子。 - 不能寄信、不能開 UI、不能寫其他檔案。需要那些能力時,改用 選單 或 觸發條件。
- 可呼叫的服務有限(例如
LanguageApp、部分UrlFetchApp)。一呼叫就要授權的服務,通常不能放在自訂函式裡。 - 傳入範圍時,收到的是二維陣列;回傳二維陣列可以一次填多格。
function DOUBLE_RANGE(values) {
return values.map((row) => row.map((cell) =>
typeof cell === "number" ? cell * 2 : cell
));
}
巨集
在試算表:擴充功能 → 巨集 → 錄製巨集。做完格式或篩選後停止,Google 會把操作寫成 SpreadsheetApp 呼叫。打開 Apps Script 就能看到產生的函式,通常冗長但可讀,是學 Range API 的捷徑。
把巨集改成參數化、或加上 onOpen 選單,就變成正式自動化。官方 Codelab 第一篇就是 Macros & Custom Functions。