สร้าง check box แบบอัตโนมัติ

ใส่ช่อง Check Box ใน Google Sheet อัตโนมัติเมื่อเพิ่มหรือแก้ไขข้อมูล

จากบทความ การทำ Check Box ใน Google Sheet ที่ผมเขียนไปแล้วนั้น เราจำเป็นต้องเพิ่ม Check Box ด้วยตนเอง โดยคลิกที่เมนูด้านบน เลือก insert > Check box แต่ถ้าหากเรามีข้อมูลเยอะๆ และมีการเพิ่มข้อมูลเรื่อยๆ การเพิ่มแบบนี้อาจจะไม่สะดวกมากนัก เราจะมาเขียนสูตร App Script เพื่อให้มันเพิ่มได้โดยอัตโนมัติแบบนี้กัน

อันดับแรกคือ เราต้องเข้าใจก่อนว่า การเขียน App Script แบบนี้เป็นการฝังสคริปเข้าไปอยู่กับไฟล์ Google Sheet ของเราโดยให้มันทำงานอยู่เบื้องหลังนั่นเอง

บทความนี้คุณไม่จำเป็นต้องเก่งเขียนสคริปขนาดนั้น เพราะผมจะมีสคริปให้ copy ไปนิดหน่อย แล้วทำตามกันครับ

ถ้าอยากทดสอบการทำงานให้ทำการ Copy ไฟล์ Google Sheet นี้ไปทดลองเพิ่มรายการดูนะครับ >> Download File

ซึ่งไฟล์ที่ดาวน์โหลดไปแล้วจะมีสคริปฝังอยู่กับไฟล์ไปแล้วนะ ถ้าคุณต้องการทำให้เปิดไฟล์เปล่า หรือไฟล์ที่คุณทำงานอยู่แล้วทำตามนี้ครับ โดยการนับคอลัมจะนับเริ่มตั้ง 0 1 2 3 ไปเรื่อยๆนะครับ แบบนี้ โดยคอลัมภ์ A จะมีค่าเป็น คอลัมภ์ 0 ครับ

จากภาพ ผมต้องการให้ ช่อง B1 เป็นช่องที่มี Check Box แบบอัตโนมัติ จะเห็นว่าช่อง B1 อยู่ตรงคอลัมภ์ 1 (จากวิธีการนับคอมลัมภ์ด้านบน)

ไปที่ Extension > App Script เพื่อจะเขียนสคริปลงในนี้

คุณสามารถตั้งชื่อ project เป็นชื่อที่สอดคล้องกับงานของคุณก็ได้ จากนั้นก็ลบสคริปที่โปรแกรมมีมาให้ออกทั้งหมด

แล้วทำการ Copy สคริปต่อไปนี้ ไปวางแทนที่ครับ

function onEdit(e){
if (e.range.columnStart != 1) return;  //เลข 1 คือค่าของคอลัมภ์ ต้องเริ่มนับจาก 0
var newCheckbox = SpreadsheetApp.newDataValidation();
newCheckbox.requireCheckbox()
.setAllowInvalid(false)
.build();
e.range.offset(0,1).setDataValidation(newCheckbox);
}

เลข 1 ที่เห็นในบรรทัดที่ 2 คือค่าตัวเลขคอลัมภ์ที่เราต้องการให้มี Check box ปรากฏ ถ้าคุณต้องการให้ปรากฎที่ช่องอื่นๆ ก็แค่เปลี่ยนค่านี้

จากนั้นก็กด Save

จากนั้นก็กด Run

แล้วโปรแกรมจะให้เรายืนยันสิทธิ์การเข้าใช้งานให้ กด ดังภาพ

เลือกอีเมล แล้วกด Allow

กรณีที่คุณไม่ได้ใช้อีเมลขององค์กร มันอาจจะต้องยืนยันสิทธิ์อีกขั้นตอนคือ จำเป็นต้องกด เลือกที่ Advanced ด้านล่าง แล้วเลือก go to … (unsave)

เมื่อทำสำเร็จจะได้หน้าตาประมาณนี้ออกมาครับ

กลับไปที่ไฟล์ Google Sheet ของคุณ แล้วลองแก้ไข หรือ เพิ่มข้อความใน ช่อง คอลัมภ์ B ดูครับ เมื่อเปิดมาแรกๆ ถ้ายังไม่มีการแก้ไขอะไรก็ยังไม่เห็น Check Box นะครับ

ให้คุณทำการกด refresh Google Sheet ก่อนแล้ว แก้ไขรายการ หรือเพิ่มรายการใหม่ อาจจะใช้วิธี copy รายการเดิมทับลงไปก็ได้

สรุป (conclusion) เราจะเห็นได้ว่านอกจากจะเพิ่ม Check Box แบบแมนอลแล้ว ยังสามารถเพิ่มจาก App Script ง่ายๆ ได้อีกวิธีหนึ่ง เหมาะกับงานที่ต้องเพิ่ม check box บ่อยๆ และเรื่อยๆ นั่นเองครับ

หากมีปัญหาการใช้งาน Google Sheet สามารถไลน์มาปรึกษาได้นะครับ มีค่าบริการเพียงเล็กน้อยแล้วแต่ความยากง่ายของงานครับผม ที่ @krujakkrapong


Comments

Leave a Reply