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