Function NumberToText(Number As Double, MainCurrency As String, SubCurrency As String)
Dim Array1(0 To 9) As String
Dim Array2(0 To 9) As String
Dim Array3(0 To 9) As String
Dim MyNumber As String
Dim GetNumber As String
Dim ReadNumber As String
Dim My100 As String
Dim My10 As String
Dim My1 As String
Dim My11 As String
Dim My12 As String
Dim GetText As String
Dim Billion As String
Dim Million As String
Dim Thousand As String
Dim Hundred As String
Dim Fraction As String
Dim MyAnd As String
Dim I As Integer
Dim ReMark As String
If Number > 999999999999.99 Then Exit Function
If Number < 0 Then
Number = Number * -1
" = "سالبReMark
End If
If Number = 0 Then
" = "صفرNumberToText
Exit Function
End If
" = " وMyAnd
"" = Array1(0)
" = "مائةArray1(1)
" = "مائتانArray1(2)
" = "ثالثمائةArray1(3)
" = "أربعمائةArray1(4)
" = "خمسمائةArray1(5)
" = "ستمائةArray1(6)
" = "سبعمائةArray1(7)
" = "ثمانمائةArray1(8)
" = "تسعمائةArray1(9)
"" = Array2(0)
" = " عشرArray2(1)
" = "عشرونArray2(2)
" = "ثالثونArray2(3)
" = "أربعونArray2(4)
" = "خمسونArray2(5)
" = "ستونArray2(6)
" = "سبعونArray2(7)
" = "ثمانونArray2(8)
" = "تسعونArray2(9)
"" = Array3(0)
" = "واحدArray3(1)
" = "اثنانArray3(2)
" = "ثالثةArray3(3)
" = "أربعةArray3(4)
" = "خمسةArray3(5)
" = "ستةArray3(6)
" = "سبعةArray3(7)
" = "ثمانيةArray3(8)
" = "تسعةArray3(9)
GetNumber = Format(Number, "000000000000.00")
I=0
Do While I < 15
If I < 12 Then
MyNumber = Mid$(GetNumber, I + 1, 3)
Else
MyNumber = "0" + Mid$(GetNumber, I + 2, 2)
End If
If (Mid$(MyNumber, 1, 3)) > 0 Then
ReadNumber = Mid$(MyNumber, 1, 1)
My100 = Array1(ReadNumber)
ReadNumber = Mid$(MyNumber, 3, 1)
My1 = Array3(ReadNumber)
ReadNumber = Mid$(MyNumber, 2, 1)
My10 = Array2(ReadNumber)
" = "إحدى عشرةIf Mid$(MyNumber, 2, 2) = 11 Then My11
" = "إثنى عشرةIf Mid$(MyNumber, 2, 2) = 12 Then My12
" = "عشرةIf Mid$(MyNumber, 2, 2) = 10 Then My10
If ((Mid$(MyNumber, 1, 1)) > 0) And ((Mid$(MyNumber, 2, 2)) > 0) Then My100 = My100 +
MyAnd
If ((Mid$(MyNumber, 3, 1)) > 0) And ((Mid$(MyNumber, 2, 1)) > 1) Then My1 = My1 +
MyAnd
GetText = My100 + My1 + My10
If ((Mid$(MyNumber, 3, 1)) = 1) And ((Mid$(MyNumber, 2, 1)) = 1) Then
GetText = My100 + My11
If ((Mid$(MyNumber, 1, 1)) = 0) Then GetText = My11
End If
If ((Mid$(MyNumber, 3, 1)) = 2) And ((Mid$(MyNumber, 2, 1)) = 1) Then
GetText = My100 + My12
If ((Mid$(MyNumber, 1, 1)) = 0) Then GetText = My12
End If
If (I = 0) And (GetText <> "") Then
If ((Mid$(MyNumber, 1, 3)) > 10) Then
" " مليار+ Billion = GetText
Else
" " مليارات+ Billion = GetText
" = " مليارIf ((Mid$(MyNumber, 1, 3)) = 2) Then Billion
" = " مليارنIf ((Mid$(MyNumber, 1, 3)) = 2) Then Billion
End If
End If
If (I = 3) And (GetText <> "") Then
If ((Mid$(MyNumber, 1, 3)) > 10) Then
" " مليون+ Million = GetText
Else
" " ماليين+ Million = GetText
" = " مليونIf ((Mid$(MyNumber, 1, 3)) = 1) Then Million
" = " مليونانIf ((Mid$(MyNumber, 1, 3)) = 2) Then Million
End If
End If
If (I = 6) And (GetText <> "") Then
If ((Mid$(MyNumber, 1, 3)) > 10) Then
" " ألف+ Thousand = GetText
Else
" " أالف+ Thousand = GetText
" = " ألفIf ((Mid$(MyNumber, 3, 1)) = 1) Then Thousand
" = " ألفانIf ((Mid$(MyNumber, 3, 1)) = 2) Then Thousand
End If
End If
If (I = 9) And (GetText <> "") Then Hundred = GetText
If (I = 12) And (GetText <> "") Then Fraction = GetText
End If
I=I+3
Loop
If (Billion <> "") Then
If (Million <> "") Or (Thousand <> "") Or (Hundred <> "") Then Billion = Billion + MyAnd
End If
If (Million <> "") Then
If (Thousand <> "") Or (Hundred <> "") Then Million = Million + MyAnd
End If
If (Thousand <> "") Then
If (Hundred <> "") Then Thousand = Thousand + MyAnd
End If
If Fraction <> "" Then
If (Billion <> "") Or (Million <> "") Or (Thousand <> "") Or (Hundred <> "") Then
NumberToText = ReMark + Billion + Million + Thousand + Hundred + " " + MainCurrency +
MyAnd + Fraction + " " + SubCurrency
Else
NumberToText = ReMark + Fraction + " " + SubCurrency
End If
Else
NumberToText = ReMark + Billion + Million + Thousand + Hundred + " " + MainCurrency
End If
End Function