跳到主要內容
Cypher's Practical Coding
正在準備工作環境...

初探 Apps Script:用 AI 寫你的第一個自動化

你每週都在做這件事,但其實不用自己做

每週一早上,你要做這些事:

  1. 打開訂單表
  2. 篩選上週的訂單
  3. 算出總金額
  4. 複製數字,填到週報表的對應格子
  5. 發一封郵件給主管說「週報已更新」

這 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);
  }
}

你不需要看懂每一行,只需要:

  1. 把上面的程式碼貼進 Apps Script 編輯器
  2. "庫存表" 改成你的工作表名稱
  3. yourname@company.com 改成你的信箱
  4. 點「執行」按鈕測試

設定自動定時執行

不需要每天手動點「執行」,可以設定自動排程:

  1. 在 Apps Script 編輯器,點左側「時鐘」圖示(觸發條件)
  2. 點「新增觸發條件」
  3. 設定:
    • 執行函式: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,主旨「月報已更新」,內文包含上月各分類金額彙整

挑戰任務

Task 1

Apps Script 中,下列哪個功能是 Apps Script 能做到但「錄製巨集」做不到的? A. 重複執行固定步驟 B. 根據條件(if/else)判斷要不要執行某動作 C. 複製儲存格格式 D. 貼上數值

Task 2

你想讓 Apps Script 每天早上 8 點自動執行,而不是每次手動點執行。應該到哪裡設定? A. 工具 → 巨集 B. Apps Script 的「觸發條件」(時鐘 icon) C. 格式 → 條件式格式設定 D. 資料 → 資料驗證

Task 3

你想讓 AI 幫你寫一個 Apps Script,功能是:每週五下午 5 點,自動把本週(週一到週五)的訂單金額加總,填入「月報」工作表的 B 欄(對應的週次列)。請用「需求描述模板」把你的需求寫成一段給 AI 的 prompt。

BackTake the Exam →