![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTW3yVRrAzxfBqurVmR_gZx51-_BDHnTzb2-W2umoMMAYihEpHScVHp9AALSvipdfmcGOTW26HZ0wqj_7uca_z6SPEmvHF3zmZppRpqorFz5S1MFnx5cNXWvKszKbdFHczW6rXfofMQfU/s400/Tflag.png)
ถ้าเรามีเอกสาร Microsoft Word Document (.doc, .docx) ที่สร้างไว้แล้ว โดยใช้ตัวเลขแบบอารบิก 0123456789 แต่ต้องการแปลงเป็นตัวเลขภาษาไทย ๐๑๒๓๔๕๖๗๘๙ มีวิธีช่วยให้ทำได้แบบง่ายๆ บ้างไหม?
แวบแรกที่มักคิดถึงกันก็คือความสามารถ Find / Replace ใน Word เอง กำหนดเลข ๑ แทนให้กับ 1 ไล่ไปเรื่อยจนครบ
จะให้เร็วอีกนิดก็คือบันทึกเป็น Macro ให้ค้นหาและแทนที่ทั้งหมด จากการค้นข้อมูลเรื่อง Unicode พบว่า ค่าแบบเลขทศนิยมเป็นดังนี้
อารบิก 0-9 => Unicode 48-57
ไทย ๐-๙ => Unicode 3664-3673
จึงเป็นตัวหลักที่จะเอามาใช้ใน VBA ที่จะเป็นแมโคร Word
ด้วยโค้ดดังนี้
Sub ThaiNumbers()
For i = 0 To 9
' This macro is developed by S.Chatchawal.
' schatchawal@gmail.com
' Convert Arabic Numbers To Thai Numbers
' 01234567890
' arabic 0-9 => Unicode 48-57
' Thai 0-9 => Unicode 3664-3673
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(48 + i)
.Replacement.Text = ChrW(3664 + i)
.Wrap = wdFindContinue
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next
End Sub
หรือจะอีเมลมารับไฟล์ ThaiNumber.bas ไปใช้เลยก็ได้
ซึ่งจะแนบรายละเอียดไว้ในไฟล์ PDF วิธีใช้สำหรับ Word 2010 ให้ด้วย
หลังจากสร้างแมโครนี้เสร็จ การใช้ก็เพียงแต่กดคีย์ Alt+F8 เปิดไดอะล็อก Macro ขึ้น แล้วเลือกที่ Module1.ThaiNumber แล้วคลิก Run เพียงเท่านี้ทั้งเอกสารก็จะแทนที่เลขอารบิกด้วยเลขไทยแล้ว
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4NzbmUj6EPVt0alqEIz_cgLeqn9tuwWNEZHKm6NpQpKaSO84izqzBrlIhE9Q05Q1YeZu004rkml89K2_9TPQaT-kVf2po3loqPEy_Ph9cqy02hAMZU5FLqJ5hkDexrAcuXTSSq93VO6s/s400/W07.png)
ส่วนการเปลี่ยนตัวเลขของ Numbering หรือลำดับหัวข้อย่อย
จะใช้วิธีสร้างแมโครกับส่วนที่เลือกก็ได้ วิธีเปลี่ยนแบบหนึ่งที่สามารถทำได้ มีขั้นตอนดังนี้
1. เลือกข้อความส่วนลำดับหัวข้อย่อย
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4gxFH3O_0Uz7cZFVD6JbvX2ePlJL49s07KyMnupM_vcViN_81UV07CEycavZJdTFD9uDgkR2pADTJcJa1_nW7JOk0ssZzdkSAZpybgIehd2VTHXIwGsM2xhY8JQ3tsQjclHAXnQ5RzC0/s400/W16-2.png)
2.คลิกขวาเลือก Numbering
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1wMe6xyQUnDD5PVv-Fdj96GpUWObAXgKrhOpnjXob4afEGR44lWYNlAbyX3TlzMMaTNkkMMEdzl7qV0CDpf0aTJ-VaRYm3oggK1yIQjyHo3xkd1sEe2XSvBijMyzcNy8Db2rXG0u2024/s400/W17.png)
3.คลิกรูปแบบตัวเลขไทย
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHrQBWDSS92hAhSbNeLj-HSaJIjLv1Xcf-ZkPOIf83jBJEZCyMI2y7fEDZFGJJ4xfrCPogoFZKof69Ph6IM8UDwnoJ2vKIzKwNDyB4IHP2u1HYqk5ZXs0hfIhshVgsGuwQmSRhV4QJ7tw/s400/W18.png)
4.ตัวอย่างผลลัพธ์ที่ได้
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjadP6h1Z8XnHEc-xNp7hGMqMCI-QATMNQEc1lUZsf3k15ocE7kg02EhG4UpTaRPghPLx8evc395qhT6jiWcNIquEtl0XJGU246fHjCHjkDCdSDZvASGMiMq1hI8YoyFm-ef7k1ukKPmRI/s400/W19.png)
มาขอรับ ThaiNumber.bas ไปใช้หน่อยนะครับ
ตอบลบกำลังลำบากเลย
song343@gmail.com
ขอบคุณมากครับ
ขอรับ thainumber.bas ไปใช้หน่อยค่ะ ลำบากเหมือนกัน ทำงานไม่สะดวกเลย
ตอบลบjeab-jr@hotmail.com
ขอบคุณมากค่ะ
rid10
ขอรับ thainumber.bas ไปใช้ด้วยค่ะ ไม่มีความรู้ในการเปลี่ยนใน แมโครเลยค่ะ
ตอบลบth.duangrat@gmail.com
ขอบคุณมากค่ะ
ขอบคุณมากๆครับ ช่วยได้เยอะเลย :)
ตอบลบรบกวนขอรับไฟล์ ThaiNumber.bas ไปใช้ด้วยหน่อยค่ะ พอดีไม่มีความรู้ในการเปลี่ยนแมโคร เพราะลองทำตามอินเตอร์เน็ตหลายครั้งแล้ว แต่ก็สร้างขึ้นมาไม่ได้เลยค่ะ รบกวนหน่อยนะค่ะ
ตอบลบnamesisneung@gmail.com
ขอบคุณมากค่ะ