
Number to Words in Excel VBA Code

Number to Words in Indian Rupees in Excel VBA Code
Function NumberToWordsIndian(ByVal MyNumber As Double) As String
Dim Units As Variant, Tens As Variant
Dim Rupees As String, Paise As String
Dim DecimalPlace As Integer
Dim Count As Integer, n As Double
Dim Temp As String, Number As String
Units = Array("", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ", "Ten ", _
"Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", _
"Seventeen ", "Eighteen ", "Nineteen ")
Tens = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
' Paise निकालना
DecimalPlace = InStr(CStr(MyNumber), ".")
If DecimalPlace > 0 Then
Paise = "And " & Format(Val(Mid(CStr(MyNumber), DecimalPlace + 1)) * 10 ^ (2 - (Len(CStr(MyNumber)) - DecimalPlace)), "00") & " Paise"
MyNumber = Int(MyNumber)
End If
If MyNumber = 0 Then
NumberToWordsIndian = "Zero Rupees " & Paise
Exit Function
End If
Number = Trim(Str(MyNumber))
Count = 1
Do While MyNumber > 0
If Count = 1 Then
n = MyNumber Mod 1000
MyNumber = Int(MyNumber / 1000)
ElseIf Count = 2 Then
n = MyNumber Mod 100
MyNumber = Int(MyNumber / 100)
Else
n = MyNumber Mod 100
MyNumber = Int(MyNumber / 100)
End If
If n <> 0 Then
Temp = ConvertGroupIndian(n, Units, Tens) & GetPlaceName(Count) & Temp
End If
Count = Count + 1
Loop
Rupees = Temp & "Rupees "
NumberToWordsIndian = Rupees & Paise
End Function
Private Function ConvertGroupIndian(ByVal Number As Double, Units As Variant, Tens As Variant) As String
Dim Result As String
If Number < 20 Then
Result = Units(Number)
ElseIf Number < 100 Then
Result = Tens(Int(Number / 10)) & Units(Number Mod 10)
Else
Result = Units(Int(Number / 100)) & "Hundred " & ConvertGroupIndian(Number Mod 100, Units, Tens)
End If
ConvertGroupIndian = Result
End Function
Private Function GetPlaceName(ByVal Count As Integer) As String
Select Case Count
Case 2: GetPlaceName = "Thousand "
Case 3: GetPlaceName = "Lakh "
Case 4: GetPlaceName = "Crore "
Case Else: GetPlaceName = ""
End Select
End Function
Steps


