เขียน 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 the lecturer in faculty of Information Technology at Nation University.

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

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

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

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

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

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

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

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

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

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

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

    ใช้window7ค่ะ

  8. ถ้าเป็น 091-12344556 เป็นโทรค่ะ ทำไม่ได้ ทำยังไงค่ะ

  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

Your email address will not be published. Required fields are marked *

Academics