Skip to content

建立 2026-09-15 更新 2026-09-15

自訂函式與巨集

自訂函式讓你在儲存格裡寫 =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