Google Workspace 中的自訂選單

指令碼可新增使用者介面元素,當使用者點選時,執行 Apps Script 函式,藉此擴充特定 Google 產品。最常見的例子是透過 Google 文件、試算表、簡報或表單中的自訂選單項目執行指令碼,但也可以透過點選 Google 試算表中的圖片和繪圖來觸發指令碼函式。

Google 文件、試算表、簡報或表單中的自訂選單

Apps Script 可在 Google 文件、試算表、簡報或表單中新增選單,每個選單項目都會連結至指令碼中的函式。(在 Google 表單中,只有編輯者 (開啟表單進行修改) 才能看到自訂選單,使用者 (開啟表單進行回覆) 則無法看到)。

只有在指令碼繫結至文件、試算表或表單時,才能建立選單。如要在使用者開啟檔案時顯示選單,請在 onOpen() 函式中編寫選單程式碼。

以下範例說明如何新增包含一個項目的選單,然後依序新增視覺分隔符和包含其他項目的子選單。(請注意,在 Google 試算表中,除非您使用新版本,否則必須改用 addMenu() 語法,無法使用子選單)。當使用者選取任一選單項目時,對應的函式會開啟警示對話方塊。如要進一步瞭解可開啟的對話方塊類型,請參閱對話方塊和側欄指南

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 試算表中的圖片或繪圖。以下範例說明如何設定這項功能。

  1. 在 Google 試算表中,依序選取選單項目「擴充功能」>「Apps Script」,建立與試算表繫結的指令碼。
  2. 刪除指令碼編輯器中的任何程式碼,然後貼上下方的程式碼。

      function showMessageBox() {
        Browser.msgBox('You clicked it!');
      }
    
  3. 返回 Google 試算表,然後依序選取「插入」>「圖片」或「插入」>「繪圖」,插入圖片或繪圖。

  4. 插入圖片或繪圖後,請按一下圖片或繪圖。右上角會顯示一個小型下拉式選單選取器。按一下該選項,然後選擇「指派指令碼」

  5. 在隨即顯示的對話方塊中,輸入要執行的 Apps Script 函式名稱 (不含括號),在本例中為 showMessageBox。按一下「OK」

  6. 再次按一下圖片或繪圖。現在函式就會執行。