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

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

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

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

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

ตัวอย่างด้านล่างแสดงวิธีเพิ่มเมนูที่มี 1 รายการ ตามด้วยตัวคั่นด้วยภาพ แล้วคลิกเมนูย่อยที่มีรายการอื่น (โปรดทราบว่าใน Google ชีต หากคุณไม่ได้ใช้เวอร์ชันใหม่ คุณต้องใช้ไวยากรณ์ของ 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!');
}

เอกสาร สเปรดชีต งานนําเสนอ หรือแบบฟอร์มจะมีเมนูที่มีชื่อได้เพียง 1 เมนูเท่านั้น หากสคริปต์เดียวกันหรือสคริปต์อื่นเพิ่มเมนูที่มีชื่อเดียวกัน เมนูใหม่จะแทนที่รายการเก่า คุณไม่สามารถนําเมนูออกขณะที่เปิดไฟล์อยู่ แม้ว่าคุณจะสามารถเขียนฟังก์ชัน onOpen() เพื่อข้ามเมนูในอนาคตได้หากตั้งค่าคุณสมบัติบางอย่างไว้

รูปภาพและภาพวาดที่คลิกได้ใน Google ชีต

คุณยังสามารถกําหนดฟังก์ชันสคริปต์ Apps ให้กับรูปภาพหรือภาพวาดใน Google ชีตได้ด้วย ตราบใดที่สคริปต์เชื่อมโยงกับสเปรดชีต ตัวอย่างด้านล่างแสดงวิธีการตั้งค่า

  1. ใน Google ชีต ให้เลือกรายการในเมนูส่วนขยาย > Apps Script เพื่อสร้างสคริปต์ที่เชื่อมโยงกับสเปรดชีต
  2. ลบโค้ดใดก็ได้ในโปรแกรมแก้ไขสคริปต์และวางลงในโค้ดด้านล่าง

      function showMessageBox() {
        Browser.msgBox('You clicked it!');
      }
    
  3. กลับไปที่ชีตแล้วแทรกรูปภาพหรือภาพวาดโดยเลือก แทรก > รูปภาพ หรือแทรก > ภาพวาด

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

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

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

นอกจากนี้ คุณยังกําหนดฟังก์ชันสคริปต์ Apps ให้กับลิงก์ใน Google Sites ได้ด้วย ตราบใดที่สคริปต์เชื่อมโยงกับเว็บไซต์ ตัวอย่างด้านล่างแสดงวิธีการตั้งค่า

  1. ในเว็บไซต์จาก Google Sites ให้คลิกเพิ่มเติม > จัดการเว็บไซต์
  2. ในแถบด้านข้าง คลิกแอปสคริปต์ แล้วคลิกเพิ่มสคริปต์ใหม่เพื่อสร้างสคริปต์ที่เชื่อมโยงกับไซต์
  3. ลบโค้ดใดๆ ในโปรแกรมแก้ไขสคริปต์ แล้ววางโค้ดด้านล่าง ซึ่งจะส่งอีเมลเมื่อผู้ใช้คลิกลิงก์

      function sitesLink() {
        var recipient = Session.getActiveUser().getEmail();
        GmailApp.sendEmail(recipient, 'Email from your site', 'You clicked a link!');
      }
    
  4. กลับไปยัง Google Site และแก้ไขหน้า พิมพ์ป้ายกํากับที่จะกลายเป็นลิงก์ เช่น Click me แล้วไฮไลต์ข้อความแล้วเลือกแทรก > ลิงก์

  5. ในกล่องโต้ตอบที่ปรากฏ ให้คลิก Apps Script แล้วคลิกฟังก์ชัน sitesLink ที่คุณเพิ่งสร้าง คลิก OK

  6. คลิกบันทึกที่ด้านบนของหน้า

  7. คลิกลิงก์ที่คุณเพิ่มลงในหน้าเว็บ

  8. กล่องโต้ตอบจะปรากฏขึ้นและแจ้งว่าสคริปต์ต้องได้รับการให้สิทธิ์ คลิกตกลง ช่องโต้ตอบที่สองจะขอการให้สิทธิ์ สําหรับบริการบางอย่างของ Google อ่านประกาศโดยละเอียด แล้วคลิกอนุญาต จากนั้นคลิกปิด

  9. เมื่อสคริปต์ได้รับสิทธิ์แล้ว ให้คลิกลิงก์ที่คุณเพิ่มไปยังหน้านั้นอีกครั้ง ฟังก์ชันนี้จะทํางาน ตรวจสอบอีเมลเพื่อดูอีเมลที่คุณส่งด้วยตนเอง