Google Workspace 中的自訂選單

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

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

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

Apps Script 可在 Google 文件、試算表、簡報或表單中新增選單,讓每個選單項目與指令碼中的函式相連結。(在 Google 表單中,只有開啟表單的編輯者能修改自訂選單,開啟表單才能回應的使用者則不會看見)。

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

以下範例說明如何新增含有一個項目的選單,接著是視覺分隔符和包含另一個項目的子選單。(請注意,除非在新版本中,否則必須改用 addMenu() 語法,且無法使用子選單)。當使用者選取其中一個選單項目時,對應的函式會開啟快訊對話方塊。如要進一步瞭解可開啟的對話方塊類型,請參閱對話方塊和側欄指南

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp 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 or FormApp.
     .alert('You clicked the first menu item!');
}

function menuItem2() {
  SpreadsheetApp.getUi() // Or DocumentApp 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. 返回「Insert」(插入) >「Image」(圖片) 或「Insert」(插入) >「Draw」(繪圖) 以插入圖片或繪圖。

  4. 插入圖片或繪圖後,請點選該圖片或繪圖。右上角會出現一個小的下拉式選單選取工具按一下這個方塊,然後選擇 [指派指令碼]。

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

  6. 再按一下圖片或繪圖。函式便會立即執行。

此外,只要指令碼「繫結」至協作平台中,您也可以將 Apps Script 函式指派給 Google 協作平台中的連結。以下範例說明如何設定。

  1. 在 Google 協作平台中,依序按一下 [更多] > [管理協作平台]。
  2. 在側欄中,依序按一下 [Apps Script] 和 [Add newscript],即可新增繫結至網站的指令碼。
  3. 刪除指令碼編輯器中的所有程式碼,然後貼上下列程式碼,當使用者按下連結時,系統就會傳送電子郵件。

      function sitesLink() {
        var recipient = Session.getActiveUser().getEmail();
        GmailApp.sendEmail(recipient, 'Email from your site', 'You clicked a link!');
      }
    
  4. 返回 Google 協作平台並編輯頁面。輸入將成為連結的標籤 (例如 Click me),然後醒目顯示文字,然後依序選取 [插入] > [連結]

  5. 在隨即顯示的對話方塊中,按一下 [Apps Script],然後點選您剛剛建立的 sitesLink 函式。按一下「OK」(確定)

  6. 按一下頁面最上方的 [儲存]

  7. 按一下您新增至網頁的連結。

  8. 接著會出現對話方塊,說明指令碼需要授權。 按一下「OK」。第二個對話方塊接著會要求特定 Google 服務的授權。請詳閱通知內容,然後依序點選 [Allow] (允許) 和 [Close] (關閉)

  9. 現在指令碼已獲得授權,請再次點選您在網頁中新增的連結。函式隨即會執行。查看電子郵件,找出您自己寄出的電子郵件。