كود تفقيط الأرقام باللغة العربية

Function NumberToArabicWords(ByVal MyNumber As Integer) As String
    Dim ArabicUnits() As String
    Dim ArabicTens() As String
    Dim ArabicHundreds() As String
    Dim ArabicThousands() As String
    Dim Result As String
    
    ' Validate input range
    If MyNumber < 0 Or MyNumber > 10000 Then
        NumberToArabicWords = "الرقم خارج النطاق (0-10000)"
        Exit Function
    End If
    
    ' Initialize Arabic number words
    ArabicUnits = Split("صفر,واحد,اثنان,ثلاثة,أربعة,خمسة,ستة,سبعة,ثمانية,تسعة,عشرة,أحد عشر,اثنا عشر,ثلاثة عشر,أربعة عشر,خمسة عشر,ستة عشر,سبعة عشر,ثمانية عشر,تسعة عشر", ",")
    ArabicTens = Split("عشرون,ثلاثون,أربعون,خمسون,ستون,سبعون,ثمانون,تسعون", ",")
    ArabicHundreds = Split("مائة,مئتان,ثلاث مائة,أربع مائة,خمس مائة,ست مائة,سبع مائة,ثمان مائة,تسع مائة", ",")
    ArabicThousands = Split("ألف,ألفان,ثلاثة آلاف,أربعة آلاف,خمسة آلاف,ستة آلاف,سبعة آلاف,ثمانية آلاف,تسعة آلاف,عشرة آلاف", ",")
    
    ' Handle 0-19 directly
    If MyNumber <= 19 Then
        Result = ArabicUnits(MyNumber)
    ' Handle 20-99
    ElseIf MyNumber <= 99 Then
        Dim tens As Integer: tens = MyNumber \ 10
        Dim units As Integer: units = MyNumber Mod 10
        If units = 0 Then
            Result = ArabicTens(tens - 2)
        Else
            Result = ArabicUnits(units) & " و" & ArabicTens(tens - 2)
        End If
    ' Handle 100-999
    ElseIf MyNumber <= 999 Then
        Dim hundreds As Integer: hundreds = MyNumber \ 100
        Dim remainder As Integer: remainder = MyNumber Mod 100
        Result = ArabicHundreds(hundreds - 1)
        If remainder > 0 Then
            Result = Result & " و" & NumberToArabicWords(remainder)
        End If
    ' Handle 1000-10000
    ElseIf MyNumber <= 10000 Then
        Dim thousands As Integer: thousands = MyNumber \ 1000
        remainder = MyNumber Mod 1000
        Result = ArabicThousands(thousands - 1)
        If remainder > 0 Then
            Result = Result & " و" & NumberToArabicWords(remainder)
        End If
    End If
    
    NumberToArabicWords = Result
End Function