สคริปต์จะขยายผลิตภัณฑ์บางรายการของ Google ได้โดยการเพิ่มองค์ประกอบอินเทอร์เฟซผู้ใช้ เมื่อคลิกฟังก์ชัน Apps Script เมื่อคลิก ตัวอย่างที่พบบ่อยที่สุด ได้แก่ การเรียกใช้สคริปต์จากรายการเมนูที่กําหนดเองใน Google เอกสาร ชีต สไลด์ หรือฟอร์ม แต่จะยังเรียกใช้ฟังก์ชันของสคริปต์ได้โดยคลิกรูปภาพและภาพวาดใน Google ชีต
เมนูที่กําหนดเองใน Google เอกสาร ชีต สไลด์
หรือฟอร์ม
Apps Script จะเพิ่มเมนูใหม่ใน 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!');
}
เอกสาร สเปรดชีต งานนําเสนอ หรือแบบฟอร์มจะมีเมนูที่มีชื่อนั้นได้เพียงเมนูเดียวเท่านั้น หากสคริปต์เดียวกันหรือสคริปต์อื่นเพิ่มเมนูที่มีชื่อเดียวกัน เมนูใหม่จะแทนที่เมนูเก่า นําเมนูออกไม่ได้ขณะที่ไฟล์เปิดอยู่ แม้ว่าคุณจะเขียนฟังก์ชัน onOpen()
เพื่อข้ามเมนูนี้ในอนาคตได้หากตั้งค่าพร็อพเพอร์ตี้บางอย่าง
รูปภาพและภาพวาดที่คลิกได้ใน Google ชีต
คุณสามารถกําหนดฟังก์ชัน Apps Script ให้กับรูปภาพหรือภาพวาดใน Google ชีตได้ด้วย ตราบใดที่สคริปต์เชื่อมโยงกับสเปรดชีต ตัวอย่างด้านล่างจะแสดงวิธีตั้งค่านี้
- ใน Google ชีต ให้เลือกรายการในเมนูส่วนขยาย > Apps Script เพื่อสร้างสคริปต์ที่เชื่อมโยงกับสเปรดชีต
ลบโค้ดใดๆ ในเครื่องมือแก้ไขสคริปต์และวางในโค้ดด้านล่าง
function showMessageBox() { Browser.msgBox('You clicked it!'); }
กลับไปที่ชีตและแทรกรูปภาพหรือภาพวาดโดยเลือก แทรก > รูปภาพ หรือแทรก > ภาพวาด
หลังจากแทรกรูปภาพหรือภาพวาด ให้คลิกรูปภาพนั้น ตัวเลือกขนาดเล็กของเมนูแบบเลื่อนลง จะปรากฏขึ้นที่มุมขวาบน คลิกแล้วเลือก กําหนดสคริปต์
ในกล่องโต้ตอบที่ปรากฏขึ้น ให้พิมพ์ฟังก์ชันของ Apps Script ที่คุณต้องการเรียกใช้โดยไม่มีวงเล็บ ในกรณีนี้
showMessageBox
คลิกตกลงคลิกรูปภาพหรือภาพวาดอีกครั้ง จากนั้นฟังก์ชันจะเริ่มทํางาน
ลิงก์ไปยังสคริปต์ใน Google Sites
คุณยังสามารถกําหนดฟังก์ชัน Apps Script ให้กับลิงก์ใน Google Sites ได้ด้วย ตราบใดที่สคริปต์เชื่อมโยงกับเว็บไซต์ ตัวอย่างด้านล่างจะแสดงวิธีตั้งค่านี้
- ในเว็บไซต์จาก Google Sites ให้คลิก เพิ่มเติม > จัดการเว็บไซต์
- ในแถบด้านข้าง ให้คลิก Apps Script แล้วคลิกเพิ่มสคริปต์ใหม่เพื่อสร้างสคริปต์ที่เชื่อมโยงกับเว็บไซต์
ลบโค้ดใดๆ ในเครื่องมือแก้ไขสคริปต์และวางในโค้ดด้านล่าง ซึ่งจะส่งอีเมลเมื่อผู้ใช้คลิกลิงก์
function sitesLink() { var recipient = Session.getActiveUser().getEmail(); GmailApp.sendEmail(recipient, 'Email from your site', 'You clicked a link!'); }
กลับไปที่เว็บไซต์จาก Google Sites แล้วแก้ไขหน้าเว็บ พิมพ์ป้ายกํากับที่จะเป็นลิงก์ เช่น
Click me
จากนั้นไฮไลต์ข้อความและเลือก แทรก > ลิงก์ในกล่องโต้ตอบที่ปรากฏ ให้คลิก Apps Script แล้วคลิกฟังก์ชัน
sitesLink
ที่คุณเพิ่งสร้าง คลิกตกลงคลิกบันทึกที่ด้านบนของหน้า
คลิกลิงก์ที่คุณเพิ่มลงในหน้าเว็บ
กล่องโต้ตอบจะปรากฏขึ้นและแจ้งว่าสคริปต์ต้องได้รับสิทธิ์ คลิกตกลง จากนั้นกล่องโต้ตอบที่ 2 จะขอสิทธิ์สําหรับบริการบางอย่างของ Google อ่านประกาศอย่างละเอียด แล้วคลิกอนุญาต จากนั้นคลิกปิด
เมื่อสคริปต์ได้รับอนุญาตแล้ว ให้คลิกลิงก์ที่คุณเพิ่มลงในหน้าเว็บอีกครั้ง จากนั้นฟังก์ชันจะเริ่มทํางาน ตรวจสอบอีเมลเพื่อดูอีเมลที่คุณส่งด้วยตัวเอง