Google Apps Script 入門教學:從零開始學會自動化操作與基礎語法

Published on: | Last updated:

嗯... 最近有人在問 Google Apps Script 是什麼

唉... 老實說,每天打開電腦,總有些事就是一直在重複。複製、貼上、寄信、整理試算表... 你知道的,就是那些很瑣碎但又不能不做的事。😶

最近剛好有朋友在問,就順便整理一下。有個東西叫 Google Apps Script,我自己是覺得,它就是為了解決這種煩躁感而生的。如果你跟我一樣,對每天做重複的事情感到有點厭煩,那這東西...嗯... 或許可以看看。

所以,它到底是什麼?

講白話一點?它就是一個能讓你跟 Google 旗下各種服務「下指令」的工具。像是你可以對 Google Sheet 說:「嘿,如果 A 欄的數字大於 100,就把那一整列變成紅色。」或是對 Gmail 說:「每天早上八點,幫我寄一封報告給老闆。」

它用的語言基礎是 JavaScript,但先別被「程式語言」這四個字嚇到。說真的,一開始你甚至不需要懂很多,只要會改改範本,就可以做到很多事了。你可以把它想像成... 嗯... 一種跟 Google 溝通的「魔法咒語」吧。你只要學會幾個簡單的咒語,就能讓它幫你自動做很多事。很酷吧?

怎麼開始我的第一個 Script?

開始之前不用安裝任何東西,這點我覺得很棒。 只要你有 Google 帳號,就可以。我們直接從最常用的 Google Sheet (試算表) 開始,最單純。

  1. 首先,打開你的 Google 雲端硬碟,新增一個 Google 試算表。就... 一個全新的、空白的就好。
  2. 接著,點擊上面選單的「擴充功能」,然後選擇「Apps Script」。 點下去,就會跳出一個新的分頁,那就是寫程式碼的地方。
  3. 那個新分頁,就是你的「腳本編輯器」。你會看到一個框框,裡面有一些預設的字,像是 `function myFunction() { ... }`。我們就是要在那裡面寫我們的「魔法咒語」。
從 Google 試算表打開 Apps Script 編輯器
從 Google 試算表打開 Apps Script 編輯器

來寫一個真正有用的東西:自動化表單回應

「Hello World」那種範例太無聊了,我們來做個實際點的。想像一下,你做了一個活動報名用的 Google 表單,你希望只要有人填單,就自動在你的 Google 日曆上新增一個行程提醒。這超實用對吧?

第一步:建立表單和試算表

先去 Google 表單建立一個簡單的報名表,至少要有「活動名稱」、「活動日期」、「Email」這幾個欄位。然後,在「回覆」分頁,點擊那個綠色的試算表圖示,把回應連結到一個新的 Google 試算表。這樣,所有填寫的資料就會自動跑到那張表上。

第二步:撰寫我們的 Script

現在,打開那份連結好的 Google 試算表,跟著上面的步驟進入 Apps Script 編輯器。把原本的程式碼都刪掉,然後貼上這段:


function onFormSubmit(e) {
  // 這段是當表單提交時會自動執行的區塊

  // 1. 取得表單送過來的資料
  // e.values 裡面就裝著使用者填的所有答案,像是一個陣列
  const eventName = e.values; // 假設第二欄是活動名稱
  const eventDate = new Date(e.values); // 假設第三欄是活動日期
  const guestEmail = e.values; // 假設第四欄是參加者的 Email

  // 2. 找到你的 Google 日曆
  // getPrimaryCalendar() 就是抓你預設的那個日曆
  const calendar = CalendarApp.getDefaultCalendar();

  // 3. 在日曆上建立活動
  // 這裡就是真的把事情加到日曆上
  calendar.createEvent(eventName, eventDate, eventDate, {
    description: '這是一個透過 Apps Script 自動新增的活動!',
    guests: guestEmail,
    sendInvites: true // 這會自動寄邀請信給參加者,超方便
  });

  // 在 Log 裡面留個紀錄,方便我們檢查有沒有跑成功
  Logger.log('已成功新增活動: ' + eventName);
}
    

嗯... 我解釋一下上面那段在幹嘛好了。`e.values` 就像一個袋子,裝著使用者剛剛填寫的所有答案。`[1]` 代表試算表的第二欄 (程式是從 0 開始算的,這點有點煩),所以你要根據你自己的表單欄位順序去調整數字。`CalendarApp` 則是 Apps Script 內建的咒語,專門用來跟 Google 日曆溝通。 最後 `createEvent` 就是真的把活動建立下去的動作。

第三步:設定「觸發條件 (Trigger)」

光寫好程式碼還不夠,我們要告訴 Google:「欸,要在『有人填表單』的時候,才去跑這段程式喔!」這個動作就叫設定觸發條件。

  1. 在腳本編輯器左邊,點擊那個像時鐘的圖示,也就是「觸發條件」。
  2. 點擊右下角的「新增觸發條件」。
  3. 在設定視窗裡,把「選取事件來源」改成「從試算表」,然後「選取事件類型」改成「提交表單時」。
  4. 然後按儲存。它會跳出一個視窗要你授權,就勇敢地按下去,允許它存取你的試算表和日曆。這是必要的,不然它沒權限幫你做事。

好了,這樣就完成了!現在你只要去填一次你的 Google 表單,過幾秒鐘,去你的 Google 日曆看看,應該就會看到多出一個新的活動了!是不是... 有點神奇的感覺?

設定一個「提交表單時」的觸發條件
設定一個「提交表單時」的觸發條件
成功在 Google 日曆上看到的自動化成果
成功在 Google 日曆上看到的自動化成果

綁定式 vs. 獨立式,哪個好?

對了,剛剛我們做的這種,程式碼直接依附在 Google 試算表裡的,叫做「Bound Script (容器綁定式腳本)」。 另外還有一種是自己獨立一個檔案,不屬於任何試算表或文件的,叫「Standalone Script (獨立腳本)」。

這兩個有什麼差?...我想想怎麼說比較好。大概是這樣:

類型 什麼是綁定式腳本 (Bound Script)? 什麼是獨立腳本 (Standalone Script)?
存在感 嗯...就是直接黏在某個檔案上的小程式。像是附生在Google Sheet上的藤蔓?🤔 檔案刪了它也跟著掰掰。 這個就自由多了。自己一個檔案,存在你的雲端硬碟裡,像個總指揮,可以去操作好幾個不同的Google服務。
優點 很直覺,要處理哪個檔案就從哪裡開。權限也比較單純,通常就是管好自己依附的那個檔案。 用途廣泛,可以做成網頁應用,或是當作一個中央控制中心,一次指揮 Drive、Gmail 跟 Calendar。
什麼時候用 當你只是想「強化」單一檔案功能時。例如:自動整理這張試算表的資料、在文件中新增自訂選單等。 當你的任務需要跨越多個服務時。例如:掃描你整個雲端硬碟裡特定名稱的檔案,然後整理成一份報告寄出去。

新手的話,我自己是覺得從「綁定式」開始最沒壓力。先專心搞定一個檔案的自動化就好。

卡關了怎麼辦?官方文件 vs. 在地社群

寫這種東西,卡關是正常的,我自己也常常打錯字或忘記某個指令。有兩個地方你一定要知道。

第一個是 Google 官方的開發者文件。 它的內容超級完整,所有 Google 服務能用的指令都查得到,這是最權威的來源。不過呢,老實說,它都是英文,而且寫得...嗯...很「工程師」,有時候不太好懂。

這時候,第二個地方就很有用:台灣的技術部落格或 Facebook 社團。你用中文去搜「Apps Script 教學」或你遇到的問題,常常會找到很多前輩分享的心得。 官方文件是字典,但台灣社群分享的範例,常常更「接地氣」,會教你解決一些很台式的辦公室問題,例如處理中文地址格式、或是產生符合台灣會計習慣的報表之類的。我覺得這點真的蠻有趣的,有時候比看官方文件還快解決問題。

幾個新手一定會踩的坑

最後分享幾個我剛開始玩的時候,浪費最多時間的地方,希望你可以避開:

  • 大小寫打錯:JavaScript 這語言...很龜毛,`calendar` 跟 `Calendar` 是完全不一樣的東西。打錯一個字,整段程式就罷工。
  • 忘記授權或權限不夠:第一次執行腳本時,Google 會問你一堆授權問題,如果你不小心按到拒絕,或後來改了腳本需要更多權限(例如本來只讀試算表,後來要寫入日曆),它就會失敗。 記得去觸發條件那邊重新授權。
  • 陣列的 index 從 0 開始:就像我上面說的,程式裡數東西習慣從 0 開始,所以試算表的第一欄,在程式裡要用 `[0]` 來抓。這點真的要花時間習慣。
  • 觸發條件設錯:有時候程式寫對了,但就是不動。結果檢查半天,發現是觸發條件設成「每次編輯時」而不是「提交表單時」。...別問我怎麼知道的。🥲

今天聊了這麼多,不知道有沒有讓你手癢也想玩玩看?學這個,重點不是要變多強的工程師,而是把那些每天被偷走的時間,一點一滴拿回來。我覺得光是這樣,就蠻值得的。

你最想自動化的,又是什麼煩人的工作呢?在下面留言聊聊吧!👇

Related to this topic:

Comments

  1. Guest 2025-09-27 Reply
    欸不是啦,這篇文章看起來太理論了吧?能不能多點實際範例?我其實很想學,但光看標題就覺得有點硬。可以分享幾個超實用的小專案嗎?拜託啦~
  2. Guest 2025-06-17 Reply
    哇!剛接觸Google Apps Script,真的是工作效率的救星啊。從零基礎到進階,這份指南簡直就像是我的隨身技能包。尤其是那些實用案例,讓我對自動化有了全新的想像!
撥打專線 LINE免費通話