Google Workspace 中的自訂選單

指令碼可以新增使用者介面元素,藉此擴充特定 Google 產品,讓使用者在點選後即可執行 Apps Script 函式。最常見的例子是在 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 試算表中可點選的圖片和繪圖

您也可以為 Google 試算表中的圖片或繪圖指派 Apps Script 函式,只要該指令碼已繫結至試算表即可。以下範例說明如何進行相關設定。

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

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

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

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

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