2018年8月11日

Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕

Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕

Wayne Fu 0 A+
google-spreadsheet-add-button-execute-apps-script.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕最近接到一個需求,想要每次都指定不同的 Blogger 文章,做出指定格式的內容,並存成 XML 檔。比較簡單的製作方式,是利用 Google 試算表,將指定的條件輸入儲存格後,寫 Google Apps Script 來撈資料執行。

而每次執行 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 指令碼的(圖片)按鈕

有兩種方式可以製作按鈕來執行 Apps Script,進入試算表後,點擊選單「插入」:

  • 圖片
  • 繪圖

選擇「圖片」的流程比較簡單,但要自行先製作圖片。相較之下,反而選擇「繪圖」來製作簡單的按鈕,會比較節省時間。

本篇以下說明使用「繪圖」來製作按鈕的流程,使用「圖片」的話,後續執行 Apps Script 的操作是一樣的。


google-spreadsheet-add-button-execute-apps-script-2.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕

選擇「繪圖」後,點擊選單「文字框」可製作按鈕。


google-spreadsheet-add-button-execute-apps-script-3.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕

請自行輸入文字、加底色、調整文字顏色、文字尺寸等,完成後按右上角「儲存並關閉」。

非常重要的一點:底色建議使用淡色,否則將來按鈕的選單圖示可能看不到。


google-spreadsheet-add-button-execute-apps-script-4.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕

如上圖,點擊做好的按鈕後,除了可調整按鈕尺寸,還會出現紅圈處的 "三個黑點選單圖示"

如果底色選擇深色、甚至是黑色就會看不出選單圖示了!(同樣的,如果選擇 "圖片" 按鈕,別選擇會讓選單看不見的圖片顏色)

接著點擊「指派指令碼」,選擇要執行的 Apps Script 函數名稱。


google-spreadsheet-add-button-execute-apps-script-5.png-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕

例如輸入 "click",那麼之後命名的函數名稱就必須是這個字串。



三、撰寫 Apps Script 指令碼


google-spreadsheet-add-button-execute-apps-script-6.png-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕

接著點擊選單「工具」→「指令碼編輯器」,進入 Apps Script 後台。


google-spreadsheet-add-button-execute-apps-script-7.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕

在程式碼區塊中,輸入以下範例 code:

function click() {
Browser.msgBox("歡迎來到 WFU BLOG !");
}

函數名稱 click 要跟前面設定的字串一樣,程式碼改成自己要執行的 js。

完成後按紅框處的「存檔」圖示。


google-spreadsheet-add-button-execute-apps-script-8.png-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕

回到試算表畫面,點擊按鈕即可執行函數。

但第一次執行時,系統會確認權限,如上圖畫面。


google-spreadsheet-add-button-execute-apps-script-9.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕

請按「進階」


google-spreadsheet-add-button-execute-apps-script-10.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕

點擊紅框處那一行


google-spreadsheet-add-button-execute-apps-script-11.png-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕

按「允許」即可完成授權


google-spreadsheet-add-button-execute-apps-script-12.jpg-Google 試算表製作可執行 Apps Script 指令碼的(圖片)按鈕

將來點擊按鈕時,不會再出現這些流程,畫面上方紅框處會顯示「正在執行指令碼」。

以範例程式碼為例,執行後會在畫面彈出「歡迎來到 WFU BLOG」的訊息,代表本篇操作流程成功!



四、補充


2019.8.12 新增:

有時對著按鈕按右鍵,似乎會讓執行程式跑掉,必須重新設定:

  • 將來若無法執行時,需重新指派程式
  • 對按鈕按右鍵 → 按右上角選單圖示 → 指派指令碼 → 輸入要執行的 Apps Script 函數名稱,按確定
  • 將來對著按鈕只要按左鍵執行,避免按右鍵


更多 Google 試算表相關技巧:
0 0
如這篇文章對你有幫助,歡迎「分享」到 FB、「追蹤」粉絲團、「訂閱」最新文章

11 則留言:

  1. 個人是用選單的方法,也是滿好用的

    https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#getUi()

    回覆刪除
    回覆
    1. 請問您說的方法是指? 應該從哪裡開始了解,謝謝您

      刪除
  2. 請問大大,就您這篇章節,要如何讓手機介面也能像電腦上操作一樣點按鈕動作呢? 謝謝。

    回覆刪除
  3. 我已經建立一個巨集名稱叫做“下指令”,我同時也建立了一個按鈕,我要如何讓按鈕去執行"下指令"這個巨集?語法要怎麼寫?

    回覆刪除
    回覆
    1. 「二、製作按鈕的方式」~「三、撰寫 Apps Script 指令碼」的內容多看幾次

      刪除
    2. 唉!對我這個老人看了很多次還是霧灑灑,試來試去都不行,行行好還是直接告訴我吧!

      刪除

張貼留言注意事項:

◎ 勾選「通知我」可收到後續回覆的mail!
◎ 請在相關文章留言,與文章無關的主題可至「Blogger 社團」提問。
◎ 請避免使用 Safari 瀏覽器,否則無法登入 Google 帳號留言(只能匿名留言)!
◎ 提問若無法提供足夠的資訊供判斷,可能會被無視。建議先參考這篇「Blogger 提問技巧及注意事項」。
◎ CSS 相關問題非免費諮詢,建議使用「Chrome 開發人員工具」尋找答案。
◎ 手機版相關問題請參考「Blogger 行動版範本的特質」→「三、行動版範本不一定能執行網頁版工具」;或參考「Blogger 行動版範本修改技巧 」,或本站 Blogger 行動版標籤相關文章。
◎ 非官方範本問題、或貴站為商業網站,請參考「Blogger 免費諮詢 + 付費諮詢
◎ 若是使用官方 RWD 範本,請參考「Blogger 推出全新自適應 RWD 官方範本及佈景主題」→ 不建議對範本進行修改!
◎ 若留言要輸入語法,"<"、">"這兩個符號請用其他符號代替,否則語法會消失!
◎ 為了過濾垃圾留言,所有留言不會即時發佈,請稍待片刻。
◎ 本站「已關閉自刪留言功能」。

TOP