เมนูที่กําหนดเองใน Google Workspace

สคริปต์สามารถขยายผลิตภัณฑ์บางอย่างของ Google ได้โดยการเพิ่มองค์ประกอบอินเทอร์เฟซผู้ใช้ที่จะเรียกใช้ฟังก์ชัน Apps Script เมื่อมีการคลิก ตัวอย่างที่พบบ่อยที่สุดคือ เรียกใช้สคริปต์จากรายการเมนู ที่กำหนดเองใน Google เอกสาร, ชีต, สไลด์ หรือฟอร์มก็ได้ แต่ฟังก์ชันสคริปต์ยังสามารถเรียกใช้ได้โดยการคลิกที่รูปภาพและ ภาพวาดใน Google ชีต

เมนูที่กำหนดเองใน Google เอกสาร ชีต สไลด์ หรือฟอร์ม

Apps Script สามารถเพิ่มเมนูใหม่ใน Google เอกสาร, ชีต, สไลด์ หรือฟอร์ม แต่ละรายการในเมนูที่เชื่อมโยงกับฟังก์ชันในสคริปต์ (เมนูที่กำหนดเองใน Google ฟอร์ม แสดงต่อผู้แก้ไขที่เปิดแบบฟอร์มเพื่อแก้ไขแบบฟอร์มเท่านั้น ไม่ใช่ผู้ใช้ที่ดำเนินการ เปิดแบบฟอร์มเพื่อตอบกลับ)

สคริปต์จะสร้างเมนูได้เฉพาะกรณีที่ bound กับเอกสาร สเปรดชีต หรือแบบฟอร์ม หากต้องการแสดงเมนูเมื่อผู้ใช้เปิดไฟล์ ให้เขียนโค้ดเมนูภายในไฟล์ onOpen()

ตัวอย่างด้านล่างแสดงวิธีเพิ่มเมนู กับ 1 รายการ ตามด้วย เส้นแบ่งภาพ ตามด้วย เมนูย่อยที่มี รายการอื่น (โปรดทราบว่าใน 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. กลับไปที่ชีตและแทรกรูปภาพหรือภาพวาดโดยเลือก แทรก > รูปภาพหรือแทรก > วาดเขียน

  4. หลังจากแทรกรูปภาพหรือภาพวาดแล้ว ให้คลิกที่รูปภาพหรือภาพวาด เมนูแบบเลื่อนลงขนาดเล็ก จะปรากฏที่มุมขวาบน ให้คลิกแล้วเลือก กำหนดสคริปต์

  5. ในกล่องโต้ตอบที่ปรากฏขึ้น ให้พิมพ์ชื่อฟังก์ชันสคริปต์ของแอปที่ต้องการเรียกใช้โดยไม่มีวงเล็บ ซึ่งในกรณีนี้คือ showMessageBox คลิก OK

  6. คลิกรูปภาพหรือภาพวาดอีกครั้ง ฟังก์ชันจะทำงาน