12 ก.ย. 2023 เวลา 05:33 • ไอที & แก็ดเจ็ต

พื้นฐานการใช้ onEdit() ใน apps script

วันนี้เราจะมาเรียนรู้วิธีใช้ apps script ผ่านฟังก์ชัน onEdit กัน
1
เริ่มจากเปิด google sheet เลือกเมนูส่วนขยาย เข้าไปที่ Apps Script จะได้หน้าต่างดังภาพที่ 1
ภาพที่ 1
เปลี่ยนชื่อโครงการเป็น onEdit
และเปลี่ยนชื่อฟังก์ชันจาก myFunction() เป็น onEdit()
ภาพที่ 2
ฟังก์ชัน onEdit จะดำเนินการเมื่อมีการ Edit (แก้ไข) ชีตที่ฟังก์ชันนี้ติดอยู่ ไม่ต้องทำการติดตั้งอะไรเพิ่ม ก็ดำเนินการของมันเอง
เราจะใส่สคริปต์ขนมปังปิ้ง 🍞 เข้าไป คือ
SpreadsheetApp.getActive().toast('สวัสดีชาวโลก')
จากนั้นกดบันทึก
ภาพที่ 3
สำหรับมือใหม่ apps script ยินดีด้วยครับ ตอนนี้คุณได้เขียนสคริปต์ให้มีขนมปังปิ้งเด้งขึ้นมาบอกว่า "สวัสดีชาวโลก" ทุกครั้งที่มีการแก้ไขแล้ว!!!
ลองกลับไปที่หน้าชีต แล้วทำการแก้ไขดู จะพบว่ามีกล่องข้อความเด้งขึ้นมาจริง ๆ
ภาพที่ 4
ต่อไปเราจะใส่ event trigger เข้าไป คือเมื่อมีการ edit เราจะอ้างอิงข้อมูลจากการ edit นั้นมาใช้ได้ด้วย เริ่มจากใส่ e เข้าไปใน () หลัง onEdit
ภาพที่ 5
จากนั้นกำหนดตัวแปรดังต่อไปนี้
var sheetName = e.source.getSheetName()
แล้วเปลี่ยน 'สวัสดีชาวโลก' เป็น sheetName ด้วย
ภาพที่ 6
ทีนี้ถ้าเรา edit ที่หน้าชีตของเรา ก็จะมีขนมปังปิ้งขึ้นมาบอกชื่อชีต
ภาพที่ 7
ให้เราเปลี่ยนข้อความในขนมปังปิ้งจาก "sheetName" ไปเป็น " 'sheetname = ' + sheetName " ดังภาพ
ภาพที่ 8
ทีนี้เมื่อเรา edit ข้อความที่แสดงก็จะเขียนเพิ่มตามที่เราใส่ไว้
ภาพที่ 9
ตัวแปรอื่น ๆ ที่ใช้บ่อย ๆ ได้แก่ แถว คอลัมน์ ค่า
var row = e.range.getRow()
var column = e.range.getColumn()
var value = e.range.getValue()
ใส่ตัวแปรทั้ง 3 ไปในสคริปต์ด้วย และเปลี่ยนข้อความขนมปังปิ้งเป็น " 'sheetname = ' + sheetName
+ ', row = ' + row + ', column = ' + column + ', value = ' + value " ดังภาพ
ภาพที่ 10
เมื่อมีการแก้ไข ขนมปังปิ้งก็จะแจ้งเราตามข้อความที่เรากำหนดไว้
ภาพที่ 11
เรายังสามารถอ้างอิงค่าเก่าด้วย e.oldValue และอ้างอิงอีเมลผู้แก้ไขด้วย e.user
สคริปต์ลักษณะนี้ใช้กับ onSelectionChange() ได้ด้วยนะ
ใช้ประยุกต์กับงานในลักษณะที่ทำบนชีตทันที เช่น การจัดรูปแบบเซลล์ การคัดลอกหรือลบข้อมูล
อย่างบทความเก่าเรื่อง drop-down list หลายชั้นก็ใช้ฟังก์ชัน onEdit
หากเห็นว่าบทความนี้เป็นประโยชน์ ช่วยกดไลค์กดแชร์เป็นกำลังใช้ให้ผู้เขียนด้วยนะฮับ
โฆษณา