เขียน vbs ใน macro แปลงระหว่างเลขไทยและเลขอาราบิก

แปลงเลขไทยเป็นเลขอาราบิก

5 มี.ค.53 ทุกองค์กรย่อมมีนโยบายมากมายทั้งที่เป็นลายลักษณ์อักษร และไม่เป็น เป็นทางการหรือไม่เป็นทางการ ช่วงนี้มีแนวนโยบายที่ไม่เป็นลายลักษณ์อักษรและไม่เป็นทางการเกิดขึ้นในองค์กรแห่งหนึ่ง คือ การใช้ตัวเลขในเอกสารขององค์กร ซึ่งก่อนหน้านี้มีวัฒนธรรมที่ผู้บริหารสนับสนุนให้ใช้เลขไทย ทำให้มีการใช้เลขไทยในเอกสารเป็นไปโดยอัตโนมัติ เมื่อเวลาผ่านไปแล้วมีการเปลี่ยนทีมผู้บริหารก็ย่อมมีการเปลี่ยนแปลงในหลายเรื่อง ทำให้การเลือกใช้แบบของตัวเลขเริ่มเปลี่ยนทิศทางไป การใช้ visual basic script ใน macro ของ microsoft word ที่เขียนขึ้น 2 ฟังก์ชันคือ แบบแปลงไทยเป็นเลขอาราบิก และ เลขอาราบิกเป็นเลขไทย ทำให้การสั่งเปลี่ยนทำได้ง่าย ทดสอบกับ word2003 แล้วใช้ได้ครับ .. ลองนำไปทดสอบดูได้นะครับ

Sub arabictothai()
For i = 0 To 9
With Selection.Find
.Text = Chr(48 + i)
.Replacement.Text = Chr(240 + i)
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next
End Sub

Sub thaitoarabic()
For i = 0 To 9
With Selection.Find
.Text = Chr(240 + i)
.Replacement.Text = Chr(48 + i)
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next
End Sub

ถ้าเป็น excel ไม่ต้องใช้ function ให้กด Ctrl-A แล้วกำหนด format ของ cell ใน Number,  Custom เป็น [$-D07041E]0 ก็จะทำให้ข้อมูลที่เป็นตัวเลขทั้งหมดเป็นเลขไทย

สาธิต : http://www.youtube.com/watch?v=JNy15bLnt9k


Author: บุรินทร์ รุจจนพันธุ์

I am Lecturer, Developer, Researcher, Columnist, Writer, Photographer, and Webmaster - L@mpang man

15 thoughts on “เขียน vbs ใน macro แปลงระหว่างเลขไทยและเลขอาราบิก”

  1. excel ในกรณีที่เป็นเบอร์โทรละครับทำไง ลองดูแล้วแต่เลข ศูนย์หายอะครับ

  2. ขอบคุณมากครับอาจารย์
    ที่แบ่งบันความรู้

  3. ขอบคุณมากมายสำหรับความรู้ ความรู้นี้ช่วยผมได้มากในการศึกษาต่อ ป.โท เพราะผมพิมพ์สารนิพนธ์เป็นเลขไทยแต่รูปแบบของมหาลัยใช้ตัวเลขอารบิก ผมเลยต้องแก้ไข นั้งแก้ไขไปรู้สึกว่าเสียเวลามาก ก็เลยคิดว่ามันน่าจะมีโปรแกรมคำสั่งอะไรที่สามารถเปลี่ยนได้นะ ก็เลยถาม google ได้ผลครับ ผมจะนำความรู้ที่ได้นี้ไปบอกต่อครับ เพื่ออาจจะได้เป็นประโยชน์ให้คนอื่นๆบ้าง

  4. Excel ถ้าในcell มีทั้งตัวหนังสือและตัวเลข ก็ไม่สามารถเปลี่ยนได้
    ต้องการให้ตัวเลขเปลี่ยนไปเลขไทย กรณีที่มีตัวอักษรอยู่ด้วย เช่น
    สธ 1130/789 เป็น สธ ๑๑๓๐/๗๘๙
    ต้องทำอย่างไรค่ะ

  5. ขอบคุณมากครับดีมากๆเลย

  6. ขอบคุณสำหรับความรู้ค่ะ ^^

    แต่ถ้าเราจะเปลี่ยนตัวเลขจากเลขไทยเป็น อารบิก ในส่วนของ Excel ต้องทำยังไงค่ะ

    ** เราไม่สามารถคำนวณ โดยที่ตัวเลขเป็นเลขไทยได้ใช่ไหมคะ

    รบกวนด้วยค่ะ

  7. ขอกราบขอบพระคุณงามๆ อาจารย์ค่ะ ช่วยหนูได้มากจริงๆ ถึงแม้ว่าหนูจะยังเปลี่ยนตัวเลขที่ติดกับตัวหนังสือทั้งไทยและอังกฤษไม่ได้ แต่ส่วนอื่นก็ช่วยหนูได้มาก

  8. ใช้ไม่ได้ค่ะ ไม่ทราบว่าต้องแก้ไขอย่างไรอีก

    ใช้window7ค่ะ

  9. === แก้ภาษาต่างด้าว ====

    Sub arabic2thai()

    ‘ arabic2thai Macro


    For i = 0 To 9
    With Selection.Find
    .Text = Chr(48 + i)
    .Replacement.Text = ChrW(3664 + i)
    .Wrap = wdFindContinue
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Next
    End Sub

  10. สามารถตั้งค่าให้เป็นตลอดได้หรือไม่คับ ผมพิมพ์ครั้งนึงก็ต้องมากดเรียกใช้ใหม่ตลอด

Leave a Reply