獲取試算表物件
要操作格子前,得先告訴程式你要哪張工作表。最簡單的方法是抓目前正在看的這一張。
function fillCell() {
var sheet = SpreadsheetApp.getActiveSheet();
}
指定格子並填入內容
使用 getRange 函式來選取位置。括號內的第一個數字是列,第二個數字是欄。填入文字要記得加上引號。
function fillCell() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1, 1).setValue("這是自動填寫的內容");
}
執行程式
回到編輯器上方。確認選取的函式是 fillCell。按下執行。你會發現試算表 A1 的位置出現了文字。
批次填寫多個格子
如果想填入多個位置。可以連續寫好幾行 getRange。或是用迴圈處理大量的資料。
function fillManyCells() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("B2").setValue(100);
sheet.getRange("C3").setValue("完成");
}
如何根據特定條件自動更改格子的顏色?
讀取儲存格數值
要判斷條件,必須先拿到格子的數值。我們用 getValue 抓取內容。然後存進一個變數裡。
function checkScore() {
var sheet = SpreadsheetApp.getActiveSheet();
var score = sheet.getRange(1, 1).getValue();
}
設定條件判斷
使用 if 語法來判斷。假設分數小於 60 分。我們就把格子背景改成紅色。如果及格,就改成綠色。
function checkScore() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(1, 1);
var score = range.getValue();
if (score < 60) {
range.setBackground("red");
} else {
range.setBackground("green");
}
}
顏色代碼說明
setBackground 可以接受英文顏色名稱。也可以輸入網頁常用的 HEX 色碼。例如 #ffff00 代表黃色。
自動化的小技巧
你可以先在 A1 格子輸入一個數字。再執行這段程式。你會發現格子的顏色會隨著數字大小改變。這就是最基礎的自動化邏輯。
如何用迴圈一次檢查整排學生的成績?
使用迴圈檢查多個格子
如果要檢查一整排分數。手動寫十次 getRange 太累。這時候要用 for 迴圈。它可以讓程式重複執行指定的次數。
撰寫批次判斷程式
這段程式會檢查第一欄的前十個格子。如果是空格就跳過。有分數就判斷顏色。
function checkAllScores() {
var sheet = SpreadsheetApp.getActiveSheet();
for (var i = 1; i <= 10; i++) {
var range = sheet.getRange(i, 1);
var score = range.getValue();
if (score === "") continue;
if (score < 60) {
range.setBackground("pink");
} else {
range.setBackground("lightblue");
}
}
}
程式運作邏輯
i 是迴圈的計數器。一開始設定為 1。每次執行完括號裡的動作。i 就會加 1。直到增加到 10 為止。getRange(i, 1) 會隨著 i 改變。依序選取不同列。
測試執行結果
先在試算表 A1 到 A10 輸入不同的數字。回到編輯器執行 checkAllScores 函式。你會看到十個格子瞬間依照分數變換顏色。這就是自動化的威力。
如何把這些功能做成一個按鈕直接點選。
插入圖形當作按鈕
回到試算表介面。點選上方選單的插入。選擇繪圖。在繪圖視窗選一個喜歡的形狀。畫在畫布上。點兩下形狀可以輸入文字。寫上執行檢查。按下右上方儲存並關閉。
連結程式碼
你會在試算表看到剛畫好的圖案。用滑鼠右鍵點一下它。圖案右上角會出現三個小點。點開後選擇指派指令碼。
輸入函式名稱
跳出的視窗要輸入你想執行的函式名字。輸入 checkAllScores。名字要跟程式碼裡寫的一模一樣。大小寫不能有任何錯誤。最後按下確定。
測試按鈕功能
現在直接用左鍵點一下圖案。程式就會自動跑起來。不需要再打開程式編輯器。這對不懂程式的人來說非常方便。這就像是做了一個自己的小軟體。
你想試試看如何把這些資料自動寄電子郵件。