指令碼可以新增使用者介面元素,在點擊時執行 Apps Script 函式,藉此擴充特定 Google 產品。最常見的例子是透過 Google 文件、試算表、簡報或表單的自訂選單項目執行指令碼,但您也可以透過在 Google 試算表中點選圖片和繪圖來觸發指令碼函式。
Google 文件、試算表、簡報或表單的自訂選單
Apps Script 可在 Google 文件、試算表、簡報或表單中新增選單,並將每個選單項目連結至指令碼中的函式。(在 Google 表單中,只有開啟表單修改的編輯者才能看到自訂選單,無法由開啟表單回覆的使用者查看)。
只有在指令碼繫結至文件、試算表或表單時,才能建立選單。如要在使用者開啟檔案時顯示選單,請在 onOpen()
函式中編寫選單程式碼。
以下範例說明如何新增包含一個項目的選單,然後依序新增視覺分隔符和包含其他項目的子選單。(請注意,在 Google 試算表中,除非您使用新版本,否則必須改用 addMenu()
語法,而且無法使用子選單)。使用者選取任一選單項目時,對應的函式會開啟「alert」對話方塊。如要進一步瞭解您可以開啟的對話方塊類型,請參閱對話方塊和側欄指南。
function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp, SlidesApp or FormApp.
ui.createMenu('Custom Menu')
.addItem('First item', 'menuItem1')
.addSeparator()
.addSubMenu(ui.createMenu('Sub-menu')
.addItem('Second item', 'menuItem2'))
.addToUi();
}
function menuItem1() {
SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp or FormApp.
.alert('You clicked the first menu item!');
}
function menuItem2() {
SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp or FormApp.
.alert('You clicked the second menu item!');
}
文件、試算表、簡報或表單只能包含一個指定名稱的選單。如果相同的指令碼或其他指令碼新增名稱相同的選單,新選單會取代舊選單。檔案開啟期間無法移除選單,但如果日後已設定特定屬性,您可以撰寫 onOpen()
函式來略過選單。
Google 試算表中的可點擊圖片和繪圖
您也可以指派 Apps Script 函式給 Google 試算表中的圖片或繪圖,只要指令碼繫結至試算表即可。以下範例說明如何設定。
- 在 Google 試算表中,依序選取選單項目「擴充功能」>「Apps Script」,建立與試算表繫結的指令碼。
刪除指令碼編輯器中的任何程式碼,然後貼上下方的程式碼。
function showMessageBox() { Browser.msgBox('You clicked it!'); }
請返回試算表,依序選取「Insert」>「Image」或「Insert」>「Drawing」,藉此插入圖片或繪圖。
插入圖片或繪圖後,按一下圖片或繪圖。右上角會顯示一個小型下拉式選單選取器。按一下該指令碼,然後選擇「指派指令碼」。
在隨即顯示的對話方塊中,輸入您要執行的 Apps Script 函式名稱,但不使用括號 (在本例中為
showMessageBox
)。按一下「OK」。再按一下圖片或繪圖。現在函式就會執行。