![google-spreadsheet-add-button-execute-apps-script.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn0qnnM-Nb_Y_ZEkAHjS2TyJQeM5qc47DrT_9Afe8_zf5KH5ZfYXVNuczE9X4yG_JVHZCm8QBeuggc40Iyy5IzzaVLwyO9gCOKyO-WS4rAeue6uA27yGQZJYFrKoBEPWUGlwJGjMBOuQCo/s1600/google-spreadsheet-add-button-execute-apps-script.jpg)
而每次執行 Google Apps Script 時,需要幾個步驟才能從試算表切換到 Apps Script 後台、選取指定的函數來執行。如果這是一次性的動作也就算了,長期都要這麼做的話會有點麻煩。
於是研究了一下能否在 Google 試算表上直接做出一個介面,例如產生一個圖形按鈕,按下後立即執行指定的函數,這樣就方便多了。
(圖片出處: pexels.com)
一、用途廣泛
舉例 1
好幾年前寫過一篇「讓 Google 試算表製作的問卷試題能自動計分」,當時使用 Google 試算表內建的函數來操作,其實非常麻煩、又記不住這些特殊的函數用法,我認為比較複雜的試算表函數都不太實用。
如果這些操作改用 Apps Script 來寫,只要有 js 基礎很簡單就能解決了,都是很基本的加減乘除而已,主要是麻煩在執行指令碼時要切換到後台。
現在知道如何在 Google 試算表創建按鈕的方法後,在前台點擊按鈕就可立刻算出分數來了。
舉例 2
如果使用 Google 試算表做記帳、或資產負債表之類,某些儲存格需要比較複雜的計算時,一樣可以寫 Apps Script,然後再拉個按鈕到儲存格旁邊,點擊後即可算出金額。
二、製作按鈕的方式
![google-spreadsheet-add-button-execute-apps-script-1.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEdEQJbLU892Tdnw69GlnjGViafBiqOhcfLgaWsyqFeH9zTbL_7Gg1WijsCw0J_o3VNxfkRilMmZbKJ87OIXMCItLOxo6DbQ94KQBMtvqTVsZlwxbD6SAX4HL0Q9Fq_VJwgquE8w8qvfVe/s1600/google-spreadsheet-add-button-execute-apps-script-1.jpg)
有兩種方式可以製作按鈕來執行 Apps Script,進入試算表後,點擊選單「插入」:
- 圖片
- 繪圖
選擇「圖片」的流程比較簡單,但要自行先製作圖片。相較之下,反而選擇「繪圖」來製作簡單的按鈕,會比較節省時間。
本篇以下說明使用「繪圖」來製作按鈕的流程,使用「圖片」的話,後續執行 Apps Script 的操作是一樣的。
![google-spreadsheet-add-button-execute-apps-script-2.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7Y3ngir9H9X2sokix2_n1sEdt-eiI8H8zDpeuWnA66h9ijg4JsQIqNdV4xdtgidSVsi7WUX9K4ktaIRvf_ft_xZk_tdmpi2S71J_YCmiFEXUSryYdDaJ24PZYo9-R66vPnp4ieZKigpa7/s1600/google-spreadsheet-add-button-execute-apps-script-2.jpg)
選擇「繪圖」後,點擊選單「文字框」可製作按鈕。
![google-spreadsheet-add-button-execute-apps-script-3.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPi_grwXfP0KzKWwIb4KrlzCJ7ZHk8HRQ91tZPXsAVSZ1QThiHy9gAQenpuBkeKE_W9nkU9vDIqxiFxW1DGBt22rcVPMTsHWwyMl-VCC-XiSPUCUhcVZLWJ_b6UWtJlGu1YlL-7Hi49tuV/s1600/google-spreadsheet-add-button-execute-apps-script-3.jpg)
請自行輸入文字、加底色、調整文字顏色、文字尺寸等,完成後按右上角「儲存並關閉」。
非常重要的一點:底色建議使用淡色,否則將來按鈕的選單圖示可能看不到。
![google-spreadsheet-add-button-execute-apps-script-4.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1x3RAGv8lLXyrLpB8TbpA-kHWQy3gRLJVMDSYR3jmOi5kxXa6bmIJYWuVAmNI4Hr45j8RUNsabAx4bWdCTfRCVMOtknYrC5Bn7oKCTMALgDiStH0TXNr4TnFh4Btb3WkF3P3SzTD9axtv/s1600/google-spreadsheet-add-button-execute-apps-script-4.jpg)
如上圖,點擊做好的按鈕後,除了可調整按鈕尺寸,還會出現紅圈處的 "三個黑點選單圖示"。
如果底色選擇深色、甚至是黑色就會看不出選單圖示了!(同樣的,如果選擇 "圖片" 按鈕,別選擇會讓選單看不見的圖片顏色)
接著點擊「指派指令碼」,選擇要執行的 Apps Script 函數名稱。
![google-spreadsheet-add-button-execute-apps-script-5.png-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3Gl0AAov4ztto_kXvev4hYb9B5Myo2QaNsO8AQ0qBbxGZaOGfIC_CW9T-DyWkiShVHMYS63gS7hJmvu2Qrn5xbNS-2oahodHl5B2TS9JRgURSIau1FKGsGMrnC1B6vB-6ZAGM4xfrLZCF/s1600/google-spreadsheet-add-button-execute-apps-script-5.png)
例如輸入 "click",那麼之後命名的函數名稱就必須是這個字串。
三、撰寫 Apps Script 指令碼
![google-spreadsheet-add-button-execute-apps-script-6.png-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr0ZuRp-BRJ-P1kX4GWhiNlcvX8ihykNtcu9XuVgSar346bM7S5XQuNFsrSRqMHmR5RQ_lk3sUFUW7uV6xc7sf4Wkea2o8Hr9ILdTRFHMo32-m1r2dxqX9M4yS1EfiDX5fhzFgCacLhbCg/s1600/google-spreadsheet-add-button-execute-apps-script-6.png)
接著點擊選單「工具」→「指令碼編輯器」,進入 Apps Script 後台。
![google-spreadsheet-add-button-execute-apps-script-7.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRNMtf2vfNkK6XN8xjuzhx2hGVHZRxALd-ZGO-oWfKal3s5pf-VrfymptmN6hiJtnMD-nC6IGuzcwQjv7dTlc1TtUQN-e_5CTfja59I7uUK7pOgbg9JpFIBBA1-IjrOgrDMw6LijFoxH2H/s1600/google-spreadsheet-add-button-execute-apps-script-7.jpg)
在程式碼區塊中,輸入以下範例 code:
function click() {
Browser.msgBox("歡迎來到 WFU BLOG !");
}
函數名稱 click 要跟前面設定的字串一樣,程式碼改成自己要執行的 js。
完成後按紅框處的「存檔」圖示。
![google-spreadsheet-add-button-execute-apps-script-8.png-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcg0ypPPmbhucshncXStUqtPIyQlizxEVAye7QxJn5sSmeHPA2tKihG0nWWkMx63wcgHHAawAgqS8G069wBYTaccDSlyUrc3FChwGSy5IkBPeBf6RJdpNeO8PFTkEzBdGvbE0N7CofD0Ma/s1600/google-spreadsheet-add-button-execute-apps-script-8.png)
回到試算表畫面,點擊按鈕即可執行函數。
但第一次執行時,系統會確認權限,如上圖畫面。
![google-spreadsheet-add-button-execute-apps-script-9.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHu9wpRR1XaUOelvnypluQuCXt1v0MHYhS76evG_AqOW3u5uqWcdU9Egv7V6VhP4w-fJeBLNzwT029zrcw_UXXjejq1Vs6o-CqCh4V3HAT0IGmH9DIzBjdbpPraDofOKBmBmstWIugEJ3I/s1600/google-spreadsheet-add-button-execute-apps-script-9.jpg)
請按「進階」
![google-spreadsheet-add-button-execute-apps-script-10.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIyuo4D1aKAMXfb8BzqpZkJaz5hZyTaHjZPilPFQb0KG3f3kXYNvWJRhRDP8CGEo9A_jKCQLgRonnqVbqfUkO7KinnnE2WxvE3J5xlwQ7f1_FdZEOTff8PfqvcOyUO-mO5Fcr9-Z7-r9Yi/s1600/google-spreadsheet-add-button-execute-apps-script-10.jpg)
點擊紅框處那一行
![google-spreadsheet-add-button-execute-apps-script-11.png-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFleqqCqM7Vi0gHL1-tWEmKIMraKbM6sVlEdX-j_QFIwb9Glj36ZrEL1hLGdvARYz_W6LDP-KpTeDQCcSyNt3g9X2I2AwtOy-3DG8BvP_0VrjXbT5-g3Ny1_pkxXRjjcREoJYkT5iJe-hy/s1600/google-spreadsheet-add-button-execute-apps-script-11.png)
按「允許」即可完成授權
![google-spreadsheet-add-button-execute-apps-script-12.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYCLYxrvLcPSphnvI1RSOCZJ_kANUvKCqBwlf1U2EHdDJtWltGFsy8WCYOodfoBcdj7aW0-l20TJDxB-S2uV3qo5Am-JLrKx_W64SN_2eLklUrh1vsqe1cIhGmuViOm-8USMbBp-Gn9LqO/s1600/google-spreadsheet-add-button-execute-apps-script-12.jpg)
將來點擊按鈕時,不會再出現這些流程,畫面上方紅框處會顯示「正在執行指令碼」。
以範例程式碼為例,執行後會在畫面彈出「歡迎來到 WFU BLOG」的訊息,代表本篇操作流程成功!
四、補充
2019.8.12 新增:
有時對著按鈕按右鍵,似乎會讓執行程式跑掉,必須重新設定:
- 將來若無法執行時,需重新指派程式
- 對按鈕按右鍵 → 按右上角選單圖示 → 指派指令碼 → 輸入要執行的 Apps Script 函數名稱,按確定
- 將來對著按鈕只要按左鍵執行,避免按右鍵
更多 Google 試算表相關技巧:
實用
回覆刪除個人是用選單的方法,也是滿好用的
回覆刪除https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#getUi()
請問您說的方法是指? 應該從哪裡開始了解,謝謝您
刪除請問大大,就您這篇章節,要如何讓手機介面也能像電腦上操作一樣點按鈕動作呢? 謝謝。
回覆刪除請問我也有類似問題 在手機中無法執行 請問有方法解嘛?
刪除+1...
刪除+1
刪除我已經建立一個巨集名稱叫做“下指令”,我同時也建立了一個按鈕,我要如何讓按鈕去執行"下指令"這個巨集?語法要怎麼寫?
回覆刪除唉!對我這個老人看了很多次還是霧灑灑,試來試去都不行,行行好還是直接告訴我吧!
刪除