初探 Apps Script:用 AI 寫你的第一個自動化
你每週都在做這件事,但其實不用自己做
每週一早上,你要做這些事:
- 打開訂單表
- 篩選上週的訂單
- 算出總金額
- 複製數字,填到週報表的對應格子
- 發一封郵件給主管說「週報已更新」
這 5 個步驟,每週 20 分鐘,一年就是 17 小時。
Apps Script 可以把這些全部自動化,而且你不需要會寫程式——因為 AI 幫你寫。
Apps Script 是什麼?
Apps Script 是 Google 提供的「腳本工具」:
- 內建在 Google Sheets、Docs、Gmail 裡
- 使用 JavaScript 語法(但你不需要學,讓 AI 寫)
- 可以操作 Sheets 的資料、發郵件、自動定時執行
一個比喻:Apps Script 就像是 Google Sheets 的「巨集錄製 2.0」,但比錄製巨集強很多:
- 可以加邏輯判斷(如果金額超過 X,才發警告郵件)
- 可以設定時間觸發(每天早上 9 點自動執行)
- 可以跨 Sheets、跨 Gmail 操作
如何進入 Apps Script
在 Google Sheets 裡: 擴充功能 → Apps Script
會開啟一個新分頁,看起來像程式碼編輯器。
第一個範例:庫存不足時自動發警告信
業務情境
商品庫存表,每天有人更新庫存數量。你想要:當任何商品庫存低於 10 時,自動發郵件通知你。
讓 AI 幫你寫的 prompt
請幫我寫一個 Google Apps Script,功能是:
- 讀取 Google Sheets 中「庫存表」工作表的 A 欄(商品名稱)和 B 欄(庫存數量)
- 找出所有庫存數量低於 10 的商品
- 把這些商品整理成清單,發郵件到 yourname@company.com
- 郵件主旨是「庫存警告:以下商品需要補貨」
- 資料從第 2 列開始,到第 200 列
AI 生成的程式碼長這樣:
function checkLowInventory() {
const sheet = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName("庫存表");
const lastRow = 200;
let lowStockItems = [];
for (let i = 2; i <= lastRow; i++) {
const productName = sheet.getRange(i, 1).getValue();
const stock = sheet.getRange(i, 2).getValue();
if (productName && stock < 10) {
lowStockItems.push(`${productName}:庫存 ${stock} 件`);
}
}
if (lowStockItems.length > 0) {
const subject = "庫存警告:以下商品需要補貨";
const body = "以下商品庫存低於 10 件,請盡快補貨:\n\n" +
lowStockItems.join("\n");
GmailApp.sendEmail("yourname@company.com", subject, body);
}
}
你不需要看懂每一行,只需要:
- 把上面的程式碼貼進 Apps Script 編輯器
- 把
"庫存表"改成你的工作表名稱 - 把
yourname@company.com改成你的信箱 - 點「執行」按鈕測試
設定自動定時執行
不需要每天手動點「執行」,可以設定自動排程:
- 在 Apps Script 編輯器,點左側「時鐘」圖示(觸發條件)
- 點「新增觸發條件」
- 設定:
- 執行函式:
checkLowInventory - 部署方式:前端
- 事件來源:時間驅動
- 類型:每天
- 時間:上午 9 點到 10 點
- 執行函式:
之後每天早上,腳本會自動執行,有問題就發信給你。
用自然語言描述需求,讓 AI 轉成程式碼
需求描述模板
請幫我寫一個 Google Apps Script:
- 資料位置:[工作表名稱],[哪幾欄有什麼資料]
- 我的需求:[描述你要做什麼]
- 觸發條件:[手動執行 / 每天幾點 / 有人修改時]
- 結果輸出:[發郵件 / 更新另一個欄位 / 在另一張工作表新增一列]
更多可以自動化的場景
| 場景 | 描述給 AI 的需求 |
|---|---|
| 訂單確認信 | 當有新訂單(新增一列),自動發確認郵件給客戶信箱欄位的地址 |
| 週報彙整 | 每週一,自動把上週訂單金額加總,填入週報工作表的對應格子 |
| 到期提醒 | 每天早上,找出「活動結束日期」是明天的活動,發提醒信 |
| 資料備份 | 每月最後一天,自動把當月工作表複製一份,命名為「2024-01備份」 |
第一次使用的常見問題
Q:執行時出現「需要授權」 A:點「查看權限」→「允許」,Apps Script 需要你授權才能操作 Sheets 和 Gmail。
Q:程式碼跑完但沒收到信 A:先查「執行記錄」(左側 icon)看是否有錯誤訊息,通常是工作表名稱打錯。
Q:AI 寫的程式碼我看不懂怎麼辦 A:沒關係!你只需要確認「修改的地方對了嗎」(工作表名稱、信箱地址、欄位位置),不需要看懂所有邏輯。
練習題
AI 協作:學了這個,跟 AI 怎麼配合?
Apps Script 是你和 AI 協作的最完美場景:你懂業務需求,AI 寫程式碼,你審核邏輯是否正確後執行。
你的人類優勢:
- 你知道自動化的業務邏輯(什麼情況下該做什麼、數字的業務意義)
- 你能測試和判斷程式碼的結果是否正確(AI 寫的程式不一定第一次就對)
可以這樣跟 AI 說:
請幫我寫一個 Google Apps Script,功能說明如下:
- 資料位置:「訂單記錄」工作表,A欄是訂單日期、B欄是商品分類、C欄是訂單金額、D欄是客戶等級
- 需求:每月1日早上9點,自動統計上個月各商品分類的總金額,新增一列到「月報統計」工作表,格式:日期、分類、金額
- 同時發一封郵件到 manager@company.com,主旨「月報已更新」,內文包含上月各分類金額彙整
挑戰任務
Apps Script 中,下列哪個功能是 Apps Script 能做到但「錄製巨集」做不到的? A. 重複執行固定步驟 B. 根據條件(if/else)判斷要不要執行某動作 C. 複製儲存格格式 D. 貼上數值
你想讓 Apps Script 每天早上 8 點自動執行,而不是每次手動點執行。應該到哪裡設定? A. 工具 → 巨集 B. Apps Script 的「觸發條件」(時鐘 icon) C. 格式 → 條件式格式設定 D. 資料 → 資料驗證
你想讓 AI 幫你寫一個 Apps Script,功能是:每週五下午 5 點,自動把本週(週一到週五)的訂單金額加總,填入「月報」工作表的 B 欄(對應的週次列)。請用「需求描述模板」把你的需求寫成一段給 AI 的 prompt。