🔄 เปลี่ยนตัวเลขไทย-อารบิก บน Word ทั้งเอกสารหรือบางส่วน ง่ายนิดเดียว!

 สวัสดีชาว EduxSphere ทุกคน! 📚 วันนี้เรามาเรียนรู้เรื่องสนุก ๆ เกี่ยวกับการแปลงตัวเลขไทยเป็นเลขอารบิก และเลขอารบิกเป็นเลขไทยกันค่ะ

🤔 ทำไมต้องแปลงตัวเลข?

ในการทำงานกับเอกสารภาษาไทย บางครั้งเราอาจต้องการความสม่ำเสมอของตัวเลขที่ใช้ เช่น:

  • ต้องการให้เอกสารทางการใช้เลขไทยทั้งหมด
  • ต้องการแปลงตัวเลขในเอกสารภาษาอังกฤษเป็นเลขไทย
  • ต้องการความสะดวกในการคำนวณโดยใช้เลขอารบิก

วิธีการใช้งาน Macro

เรามาดูโค้ด Macro สำหรับ Microsoft Word ที่จะช่วยให้การแปลงตัวเลขเป็นเรื่องง่าย!

Sub ConvertToThaiNumbers()
    ' ตรวจสอบว่ามีการเลือกข้อความหรือไม่
    If Selection.Type = wdSelectionIP Then
        ' ถ้าไม่ได้เลือกข้อความ ถามผู้ใช้
        Dim response As Integer
        response = MsgBox("คุณไม่ได้เลือกข้อความ" & vbNewLine & _
                         "คลิก 'Yes' เพื่อแปลงทั้งเอกสาร" & vbNewLine & _
                         "คลิก 'No' เพื่อยกเลิก", _
                         vbYesNo + vbQuestion, "ยืนยันการแปลง")
        
        If response = vbYes Then
            ActiveDocument.Select
        Else
            Exit Sub
        End If
    End If
    
    ' เก็บการเลือกปัจจุบันไว้
    Dim currentSelection As Range
    Set currentSelection = Selection.Range
    
    With currentSelection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Forward = True
        .Wrap = wdFindStop  ' เปลี่ยนเป็น wdFindStop
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        
        ' แปลงตัวเลข 0-9 เป็นเลขไทย
        .Text = "0"
        .Replacement.Text = "๐"
        .Execute Replace:=wdReplaceAll
        
        .Text = "1"
        .Replacement.Text = "๑"
        .Execute Replace:=wdReplaceAll
        
        .Text = "2"
        .Replacement.Text = "๒"
        .Execute Replace:=wdReplaceAll
        
        .Text = "3"
        .Replacement.Text = "๓"
        .Execute Replace:=wdReplaceAll
        
        .Text = "4"
        .Replacement.Text = "๔"
        .Execute Replace:=wdReplaceAll
        
        .Text = "5"
        .Replacement.Text = "๕"
        .Execute Replace:=wdReplaceAll
        
        .Text = "6"
        .Replacement.Text = "๖"
        .Execute Replace:=wdReplaceAll
        
        .Text = "7"
        .Replacement.Text = "๗"
        .Execute Replace:=wdReplaceAll
        
        .Text = "8"
        .Replacement.Text = "๘"
        .Execute Replace:=wdReplaceAll
        
        .Text = "9"
        .Replacement.Text = "๙"
        .Execute Replace:=wdReplaceAll
    End With
    
    MsgBox "แปลงตัวเลขเป็นเลขไทยเสร็จสิ้น", vbInformation
End Sub

Sub ConvertThaiToArabicNumbers()
    ' ตรวจสอบว่ามีการเลือกข้อความหรือไม่
    If Selection.Type = wdSelectionIP Then
        ' ถ้าไม่ได้เลือกข้อความ ถามผู้ใช้
        Dim response As Integer
        response = MsgBox("คุณไม่ได้เลือกข้อความ" & vbNewLine & _
                         "คลิก 'Yes' เพื่อแปลงทั้งเอกสาร" & vbNewLine & _
                         "คลิก 'No' เพื่อยกเลิก", _
                         vbYesNo + vbQuestion, "ยืนยันการแปลง")
        
        If response = vbYes Then
            ActiveDocument.Select
        Else
            Exit Sub
        End If
    End If
    
    ' เก็บการเลือกปัจจุบันไว้
    Dim currentSelection As Range
    Set currentSelection = Selection.Range
    
    With currentSelection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Forward = True
        .Wrap = wdFindStop  ' เปลี่ยนเป็น wdFindStop
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        
        ' แปลงเลขไทยเป็นเลขอารบิก
        .Text = "๐"
        .Replacement.Text = "0"
        .Execute Replace:=wdReplaceAll
        
        .Text = "๑"
        .Replacement.Text = "1"
        .Execute Replace:=wdReplaceAll
        
        .Text = "๒"
        .Replacement.Text = "2"
        .Execute Replace:=wdReplaceAll
        
        .Text = "๓"
        .Replacement.Text = "3"
        .Execute Replace:=wdReplaceAll
        
        .Text = "๔"
        .Replacement.Text = "4"
        .Execute Replace:=wdReplaceAll
        
        .Text = "๕"
        .Replacement.Text = "5"
        .Execute Replace:=wdReplaceAll
        
        .Text = "๖"
        .Replacement.Text = "6"
        .Execute Replace:=wdReplaceAll
        
        .Text = "๗"
        .Replacement.Text = "7"
        .Execute Replace:=wdReplaceAll
        
        .Text = "๘"
        .Replacement.Text = "8"
        .Execute Replace:=wdReplaceAll
        
        .Text = "๙"
        .Replacement.Text = "9"
        .Execute Replace:=wdReplaceAll
    End With
    
    MsgBox "แปลงเลขไทยเป็นเลขอารบิกเสร็จสิ้น", vbInformation
End Sub

📝 วิธีใช้งาน

  1. เปิด Microsoft Word
  2. กด Alt + F8 เพื่อเปิด Visual Basic Editor
  3. เพิ่ม Module ใหม่
  4. คัดลอกโค้ดด้านบนไปวาง
  5. บันทึกและกลับมาที่เอกสาร
  6. เลือกข้อความที่ต้องการแปลง
  7. รันมาโคร ConvertThaiToArabicNumbers หรือ ConvertToThaiNumbers

🎁 ทิ้งท้าย

Macro นี้จะช่วยให้การจัดการเอกสารของคุณง่ายขึ้นมาก ๆ ลองเอาไปใช้กันดูนะคะ!

🤝 แชร์ประสบการณ์

คุณเคยมีปัญหาเรื่องการแปลงตัวเลขในเอกสารบ้างไหม? มาแชร์ประสบการณ์กันในคอมเมนต์ด้านล่างได้เลย!


บทความนี้เป็นส่วนหนึ่งของ EduxSphere - แหล่งเรียนรู้ที่จะทำให้การศึกษาเป็นเรื่องสนุก! 🌟

ความคิดเห็น