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

Share your love

Newsletter Updates

Enter your email address below and subscribe to our newsletter

Leave a Reply

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