ปัญหาดังกล่าวไม่สามารถทำได้บน OpenOffice.org เนื่องมาจาก key ที่ให้เราสามารถตั้งค่าการทำงานต่างๆ บน OpenOffice.org มีอยู่จำกัดและไม่สามารถเพิ่มเองได้เหมือนกับ Microsoft Office ดังนั้นผมจึงคิดว่าควรทำเป็น extension หรือ ง่ายกว่านั้นก็คือ macro
ดังนั้นผมจึงเขียนมาโครที่ทำการ convert ตัวเลขอาราบิกทั้งหมดภายในเอกสารให้กลายเป็นตัวเลขไทยซะดังนี้
sub main dim descriptor dim foundall dim found descriptor = ThisComponent.createSearchDescriptor() thainum = array("๐", "๑", "๒", "๓", "๔", "๕", "๖", "๗", "๘", "๙") for num = 0 to 9 with descriptor .SearchString = num .SearchCaseSensitive = False end with foundall = ThisComponent.findall(descriptor) for i = 0 to foundall.getcount() -1 found = foundall.getbyindex(i) found.setstring(thainum(num)) next next end sub
แค่นี้ เมื่อกดรันมาโครดังกล่าว ตัวเลขภายในเอกสารของเราก็จะกลายเป็นเลขไทยแล้ว
-----------------------------------------------------------
เพิ่มเติมอีกนิด สำหรับการแก้ไขเลขไทยเฉพาะส่วนที่คลุมครับ
sub mainselected dim leftpos dim rightpos dim found dim descriptor descriptor = ThisComponent.createSearchDescriptor() thainum = array("๐", "๑", "๒", "๓", "๔", "๕", "๖", "๗", "๘", "๙") for num = 0 to 9 with descriptor .SearchString = num .SearchCaseSensitive = False end with leftpos = thiscomponent.getcurrentcontroller().getviewcursor().getstart() rightpos = thiscomponent.getcurrentcontroller().getviewcursor().getend() found = thiscomponent.findnext(leftpos.getstart(), descriptor) do while not isnull(found) if -1 = thiscomponent.gettext().compareRegionEnds(found, rightpos) then exit do found.setstring(thainum(num)) found = thiscomponent.findnext(found.end, descriptor) loop next end sub
-----------------------------------------------------------
update
ทำเป็น extension เพื่อให้ติดตั้งแล้วใช้งานได้ทันทีครับ
download
เมื่อติดตั้งแล้วจะอยู่ที่เมนู format > convert to native number ครับโดยต้องคลุมก่อนแล้วเลือกใช้งานครับ
ขอบคุณค่ะ แต่ว่าตัวเลขที่เป็น numbering ยังเป็นเลขอารบิกอยู่เลยค่ะ
ตอบลบช่วยเขียนมาโครให้ด้วยได้มั้ยคะ
แล้วจะนำส่วนของคำสั่ง นี่ไปใส่ใน macro ไหนอะครับ ขอทราบข้อมูลเพิ่มเติมด้วยนะครับพอดีไม่ทราบจริงๆ (ทดลองไปไว้ใน word office แล้วที่เกี่ยวกับ macro แต่ก็ไม่ได้)
ตอบลบไม่ต้องทำอะไรมากครับ
ตอบลบในโปรแกรม openOffice.org writer
ไปที่ tool เลือก option แก้ไขที่ -language setting – complex text leyout
เปลี่ยน อารบิก เป็น ระบบ
จะเปลี่ยนทั้งหน้ากระดาษ และแป้นพิมพ์เลขได้เลยครับ555555//////1111
@sunida ในส่วนของ numbering นั้นต้องแก้ไขในแต่ละ numbering ครับโดยคลิกที่ bullets and numbering บน toolbar แล้วเลือก numbering type เป็นเลขไทยครับ
ตอบลบ@Jatuporn ส่วนมาโครนี้เอาไปไว้ที่ Tools > Macro > Organize Macros > OpenOffice.org Basic.. ครับหรือกดปุ่ม Alt+F11 บน keyboard ก็ได้ จากนั้นที่ My Macros > Standard > Module1 ให้คลิกปุ่ม edit ด้านขวามือ จากนั้นนำ macro ไปวางได้เลยครับ โดยลบข้อความที่มีอยู่ออกให้หมดก่อน // การใช้งาน ให้ไปที่ Tools > Macros > Organize Macros > OpenOffice.org Basic (Alt+F11) จากนั้นเลือกมาโครที่เราต้องการแล้วกดปุ่ม run ด้านขวามือครับ
@vichian เป็นวิธีที่ง่ายและดีมากครับ แต่จะใช้งานไม่ได้ผลกับบางกรณีเช่น ไม่ได้ใช้ locale เป็นภาษาไทย หรือต้องการเลขอาราบิกบางคำบนเอกสารครับ
ต้องขออภัยทุกท่านจริงๆ ที่เข้ามาตอบช้า
ตัวเลขส่วนที่อยู่ในตารางไม่สามารถใช้ Macro ตัวนี้ได้นะค่ะ ลองดูแล้วค่ะ
ตอบลบขอบคุณครับที่แจ้ง bug ตอนนี้ทางผมกำลังแก้ไขอยู่ ถ้าเสร็จแล้วคงได้ blog ลงอีกทีครับ
ตอบลบไม่ทราบว่ามี blog ที่บอกวิธีเปลี่ยนตัวเลขอาราบิก ให้เป็นเลขไทยบน LibreOffice.org Writer ด้วยมาโคร บ้างไหมครับ
ตอบลบลองตัวนี้ดูครับ
ตอบลบhttps://docs.google.com/file/d/0B--ZYAUe6OWzRk40dW0tS1FndUk/edit?usp=sharing
ตัวนี้เป็นตัวที่ผม Develop แล้วทาง SIPA เอาไป Dev ต่อแต่ผมยังไม่ได้ Test นะครับแต่น่าจะโอเค