Google Docs—เปลี่ยนสลับเลขไทย/อารบิก ด้วย Apps Script

๑ ๒ ๓ ๔ ๕ ๖ ๗ ๘ ๙ ๐ วันนี้ไม่ได้จะมาใบ้หวยให้โชคตัวเลขน่ะครับ จากการทำงานผมพบเจอปัญหาเกี่ยวกับตัวเลขไทยเป็นประจำ เนื่องจากปัจจุบันหน่วยงานราชการต่างๆ ให้ความสำคัญกับการใช้เลขไทยอย่างมาก แต่ก็สร้างปัญหาให้กับเอกสารหลายลักษณะเช่นกัน โดยเฉพาะการพิมพ์งานที่ต้องเปลี่ยนตัวเลขจาก ไทย –> อารบิก หรือ อารบิก –> ไทย แต่ไม่ต้องกังวลไปครับ ผมมีวิธีที่จะบอกต่อไปนี้ เพื่อนๆ สามารถพิมพ์เลขอารบิกโดยใช้แป้นพิมพ์ทางด้านขวาของคีย์บอร์ดได้ดังเดิม เมื่อพิมพ์งานเสร็จ กดปุ่มคลิกเดียว ทั้งเอกสารก็จะเปลี่ยนเป็นเลขไทยให้ทันที หรือจะเปลี่ยนจากเลขไทยกลับมาเป็นเลขอารบิคก็ได้ และเวลาส่งไฟล์ไปที่เครื่องอื่นๆ ก็ยังสามารถเห็นได้เช่นกันโดยไม่ต้องไปลง Font อะไรเพิ่มเติมให้วุ่นวาย มาเริ่มกันเลยดีกว่าครับ Let’s go !!!


— เริ่มจากสร้างไฟล์ Docs ขึ้นมาใหม่ด้วยการพิมพ์ doc.new ในช่อง url ได้เลย (เอกสารแบบอื่นๆ ก็ทำได้น่ะลองดู สร้างไฟล์ใหม่อย่างรวดเร็วด้วยฟีเจอร์ .new) หรือจะเปิดไฟล์งานที่มีอยู่แล้วก็ได้ครับ จากนั้นก็ไปที่ Tools –> Script editor

— มาเริ่มเขียน Apps Script แบบง่ายๆ กันดีกว่าครับ เริ่มจากกำหนดค่าตัวเก็บไว้ในตัวแปรต่างๆ รายละเอียดไปตามอ่านได้ที่ https://developers.google.com/apps-script/reference/document/document-app

หลักๆ เลยคือผมจะเก็บค่าตัวอักษรทั้งหมดในเอกสารมาไว้ในตัวแปร bodyText ซึ่งจะอยู่ในรูปแบบ Object และสร้างตัวแปรเก็บค่าสำหรับตัวเลขอารบิก และตัวเลขไทยในรูปแบบ Object เช่นเดียวกันและต้องให้ตำแหน่งข้อมูลตัวเลขอารบิก และไทยตรงกันน่ะครับ

— ทำการเพิ่มฟังก์ชันแรกคือการเปลี่ยนจากตัวเลขอารบิก –> ตัวเลขไทย โดยหลักการของผมก็คือ จะนำค่าตัวอักษรที่อยู่ในเอกสารทั้งหมดมาเปรียบเทียบกับตัวแปรที่เก็บค่าตัวเลขทีละตัว แล้วดูว่าใช่ค่าตัวเลขอารบิกหรือไม่ ถ้าใช่แล้วตัวเลขอารบิกที่ตรงอยู่ในตำแหน่งที่เท่าไหร่ ก็จะนำตำแหน่งนั้นไปกำหนดค่าตัวเลขไทยที่ต้องการ โดยจะทำการแทนตัวเลขอารบิกนั้นๆ ด้วยตัวเลขไทย ด้วยคำสั่ง

bodySection.replaceText(ตัวเลขอารบิกที่จะเปลี่ยน, ตัวเลขไทยที่ต้องการ)

— ทำการเพิ่มฟังก์ชันที่สองคือการเปลี่ยนจากตัวเลขไทย –> ตัวเลขอารบิก โดยใช้หลักการเช่นเดียวกับฟังก์ชันแรกเพียงแค่กำหนดการเปรียบเทียบใหม่แค่นั้นครับ มาดูหน้าตาโค้ดกันเพื่อนๆ พอจะเห็นความแตกต่างของโค้ดทั้งสองฟังก์ชันน่ะครับ

— ผมจะเพิ่มเมนูที่สร้างเอกลงไปในเอกสารเพื่อจะได้ไม่ต้องมาคอยเปิด Script เพื่อรันคำสั่งทุกครั้ง ก็ให้เพิ่มฟังก์ชันที่สามได้เลยครับ โดยเมนูจะแสดงทุกครั้งที่เปิดไฟล์นี้ขึ้นมา และทำการสร้างเมนูชื่อ Number Switch และมีเมนูย่อยเพื่อรันคำสั่งที่หนึ่งชื่อเมนู Arabic to Thai โดยจะรันฟังก์ชันที่หนึ่งคือ arabicNumberToThaiNumber เมนูย่อยที่สองก็เช่นเดียวกันครับ

— อย่าลืมกด Save และกดรันคำสั่งดูก่อนน่ะครับ ถ้าไม่มี Error ใดๆ แจ้งมา ก็อย่าลืมกด Permission ด้วยน่ะครับ ถ้าเมนูไม่ขึ้นให้กด Refresh สักรอบก่อน ถ้ามีเมนูตามที่ตั้งไว้ขึ้นมาแล้ว ก็ลองพิมพ์ข้อความเพื่อทดสอบแล้วมาดูผลลัพธ์กันครับ


ท้ายสุด ผมก็ได้ฟังก์ชั่นการเปลี่ยนตัวเลขไทย/อารบิก มาใช้งานแบบง่ายๆ แล้วไม่ต้องมาคอยนั่งเปลี่ยนหรือต้องพิมพ์ตัวเลขไทยที่ไม่ถนัด เพื่อนๆ อาจจะทำเป็นเทมเพลตเอกสารโดยให้มี App Script นี้อยู่ในเทมเพลตต้นแบบก็ได้ครับ หรือจะพัฒนาต่อก็คือการทำเป็น add-on เพื่อติดตั้งใช้งานได้กับทุกๆ เอกสารและคนอื่นๆ นำไปใช้งานได้อีกด้วย สิ่งที่ต้องระวังจากการทดสอบของผมพบว่าตัวเลขที่สร้างจากคำสั่ง List Item และ Page Insert นั้นจะไม่สามารถเปลี่ยนได้ครับ จากการอ่าน Document พบว่า Google ยังไม่มียอมให้เข้าถึงและแก้ไขในส่วนนี้ครับ ก็หวังว่าเรื่องราวที่นำเสนอให้กับเพื่อนๆ คงได้นำไปแก้ปัญหาในการทำงานได้น่ะครับผม Happy Life…😉


โปรโมชั่น คูปองส่วนลด และดีล ที่ดีที่สุดของร้านค้าออนไลน์กว่า 300 แบรนด์พร้อมรับเงินคืนจาก ShopBack
🔗 https://bit.ly/3c4tlmV

Ruk-Com จดโดเมน-เช่าโฮสต์ ราคาประหยัด พร้อมให้บริการใน 1 นาที
🔗 http://bit.ly/36q8A12