
最近處理一個「Blogger 發案/接案」社團,由於台灣詐騙事件之多世界知名,為了保障案件雙方安全與權益,有必要請社團成員留下相關聯絡資料、FB 帳號、個人網站等資訊,才不至於出了事無法找人。
填寫資料最方便的自然是免費的 Google 表單,所有名單資料可自動儲存在試算表供查詢。不過問題來了,這份名單包含個資不適合公開,只能開放給有填寫表單的成員查看,其他沒填寫的成員是不可以看的。那麼要如何做到這個效果呢?總不能每次有人填寫後,就得手動點擊試算表「共用」按鈕,逐一加入新的帳號權限吧!
這麼麻煩的事當然是想辦法自動化,本篇會說明如何自動執行 Google Apps Script(簡稱GAS),來增加試算表新的使用者權限。不過仔細想想這也是個挺實用的功能,不少情境都適合這麼做,所以順便也會提供一點想法,介紹適合套用這個功能的情況有哪些。
下面也可以玩玩這個效果,先填寫問卷範例後,就能看到試算表的問卷調查結果(沒填寫問卷之前,沒有權限看試算表):
(圖片出處:
pexels.com)
一、適合應用的情境
填寫表單後自動取試算表權限,可以應用的範圍相當廣泛,不過要注意的是,如果某些資料不適合被看到,那麼需要的配套作法是,將隱私資料欄位隱藏起來,這樣就比較安全了。
這個功能除了本篇提到用於「發案/接案」名單登錄,以下幾個是我想到比較實用的情境:
1. 報名活動
製作一個報名表單,讓報名者填寫完後,立刻能從試算表查看:
- 有多少人報名
- 自己的報名序號
- 分組結果(如有設計這個功能的話)
2. 成果登記或打卡系統
這個作法算是變化題,例如登記每日成果或每日打卡時間後,工程師另外寫 GAS 將每日的資料,彙整到另一個月報表試算表,而登記者自動取得月報表試算表的讀取權限。
3. 服務滿意度、錯誤回報
某個產品或服務,可以製作這樣的表單,讓使用者反饋意見、或回報錯誤,使用者填寫完後,也能從試算表看到其他人反應哪些問題,或是對此產品、服務有什麼想法。如果看到很多人反應同一個狀況,那就可以確認是嚴重問題。
4. 投票紀錄
投票者用表單投票後,立刻可從試算表看到其他人的投票傾向。不過這個功能還有更好的作法,可參考「
讓 Google 表單(試算表) 定時寄出 PDF 報表」,能從 PDF 看到投票百分比的圖表。
5. 內部問卷調查
不公開的問卷調查,也可設計表單填問卷,填表者立刻能看到所有人的意見,不過需要記得把身份欄位隱藏起來,例如電子郵件欄位。
本篇的範例展示便是問卷調查,可以往下看表單及試算表的範例效果。
二、製作表單流程+試算表
1. 製作表單
進入「
Google 雲端硬碟」→ 左上角「新增」按鈕 → Google 表單,可以建立一個新的表單。

如上圖,填寫標題,在「問題」分頁完成所有問答內容。
2. 要求驗證 Google 郵件帳號

切換到右上紅框處的「設定」分頁 →「收集電子郵件地址」選擇「已驗證」
這個動作會要求使用者登入 Google 帳號,這是最重要的設定步驟!
如果沒這麼做,只是要求使用者在問答題目自行填入郵件信箱,那麼我們還得自行驗證是否填了假的郵件信箱,後續處理非常麻煩。
現在這個經由這個設定後,我們不但自動取得填表者的 Gmail 帳號,而且可確認是真實的郵件信箱。
3. 表單連結試算表

切換到「回覆」分頁 → 點擊紅框處「連結至試算表」
系統會自動建立一個試算表,儲存所有填寫表單的內容,之後也可從此處前往試算表網址。
全部動作都完成後,記得按 Google 表單最上方的「發布」圖示按鈕,讓這個表單上線運作。
三、執行 GAS 取得試算表權限
1. 進入 GAS

進入連結表單的試算表後,如上圖,填寫者經 Google 驗證過的郵件帳號,會紀錄在「電子郵件地址」這個欄位,通常是第 2 欄(B欄),請記住這個位置,之後會用到。
接著點擊選單上的「擴充功能」→「Apps Script」,進入 GAS 畫面
2. 撰寫 GAS

如上圖,一開始會進入左方紅框處的「編輯器」選單,右方的程式碼區塊,請貼上以下內容:
function onFormSubmit(e) {
const emailColumn = 2; // Gmail 欄位序號
const sheet = SpreadsheetApp.getActiveSpreadsheet();
const email = e.values[emailColumn - 1];
// 加為試算表的共用者,只讀
sheet.addViewer(email);
// 若要可編輯用 sheet.addEditor(email);
}
- emailColumn 是「電子郵件位址」所在的欄位,通常是第 2 欄,如果不是的話請修改為正確的欄位數字
- 沒問題的話按上方紅框的「儲存」圖示即可
3. 設定 GAS 觸發條件

接著必須設定 GAS 觸發條件讓其自動執行,如上圖,進入左方紅框處的「觸發條件」選單 → 點擊右下角紅框處的「新增觸發條件」

如上圖進行設定:
- 「選擇您要執行的功能」選擇「onFormSubmit」
- 「選取活動類型」選擇「提交表單時」
- 完成後按「儲存」
4. 允許執行權限
第一次設定「觸發條件」或者執行 GAS 時,需要取得授權,可參考「
製作可執行 GAS 指令碼的圖片按鈕」→「三、撰寫 Apps Script 指令碼」的流程進行授權。
該文的圖片是中文畫面,但也可能遇到英文界面,不過操作的按鈕位置是一樣的,所以若不知如何完成授權的話,還是可以參考該篇的流程。
5. 執行效果

如上圖,我刻意用另一個帳號填寫表單,果然立刻就能看到試算表了,點擊「共用」按鈕可看到已經多了一個獲得存取權的使用者。
四、隱藏隱私資訊
如前面所提,開放給填表者觀看的試算表內容,如果包含了隱私資訊的話,最好把那些欄位都隱藏起來。由於填表者獲得的權限只有「檢視」,無法「編輯」,所以將無法看到隱藏的欄位。

操作方法也很簡單,以前面出現過的這張圖為例,「電子郵件地址」這個欄位如果想隱藏起來:
- 點擊第 2 欄最上方「B」,可選取整欄
- 滑鼠按右鍵選擇「隱藏欄」
如此所有「電子郵件地址」資料都將看不到,但有新的填表資料時,仍會儲存電子郵件資料在隱藏欄位中。
而試算表擁有者也有多種方式可以查看隱藏內容:
- 先讓該欄顯示,查看資料內容後再隱藏
- 或複製整個試算表內容,到另一個試算表再查看
- 如能自行撰寫 GAS,也能收到新資料時,立刻複製所有填表資料到另一個試算表
下面提供的範例效果,就會隱藏「電子郵件地址」欄位,讓問卷填寫者不用擔心 Google 帳號被看到。
五、範例效果展示
這是一個問卷範例表單,填寫後就能自動獲得權限,看到試算表的所有問卷回答內容。
點擊下面這個連結,可前往試算表觀看,但是在填寫之前將無權限可檢視。此試算表會隱藏「電子郵件地址」欄位,不用擔心帳號被看到。
更多 Google Apps Script 相關文章:
沒有留言:
張貼留言注意事項:
◎ 勾選「通知我」可收到後續回覆的mail!
◎ 請在相關文章留言,與文章無關的主題可至「Blogger 社團」提問。
◎ 請避免使用 Safari 瀏覽器,否則無法登入 Google 帳號留言(只能匿名留言)!
◎ 提問若無法提供足夠的資訊供判斷,可能會被無視。建議先參考這篇「Blogger 提問技巧及注意事項」。
◎ CSS 相關問題非免費諮詢,建議使用「Chrome 開發人員工具」尋找答案。
◎ 手機版相關問題請參考「Blogger 行動版範本的特質」→「三、行動版範本不一定能執行網頁版工具」;或參考「Blogger 行動版範本修改技巧 」,或本站 Blogger 行動版標籤相關文章。
◎ 非官方範本問題、或貴站為商業網站,請參考「Blogger 免費諮詢 + 付費諮詢」
◎ 若是使用官方 RWD 範本,請參考「Blogger 推出全新自適應 RWD 官方範本及佈景主題」→ 不建議對範本進行修改!
◎ 若留言要輸入語法,"<"、">"這兩個符號請用其他符號代替,否則語法會消失!
◎ 為了過濾垃圾留言,所有留言不會即時發佈,請稍待片刻。
◎ 本站「已關閉自刪留言功能」。