Option Explicit
Function RupeesInWords(ByVal MyNumber As Double) As String
Dim Rupees As String
Dim Paise As String
Dim Temp As String
Dim DecimalPlace As Integer
MyNumber = Round(MyNumber, 2)
DecimalPlace = InStr(MyNumber, ".")
If DecimalPlace > 0 Then
Rupees = Left(MyNumber, DecimalPlace - 1)
Paise = Mid(MyNumber, DecimalPlace + 1)
Else
Rupees = MyNumber
Paise = ""
End If
RupeesInWords = ""
If Val(Rupees) > 0 Then
RupeesInWords = ConvertToWords(Rupees) & " Rupees"
End If
If Val(Paise) > 0 Then
RupeesInWords = RupeesInWords & " and " & ConvertTwoDigits(Left(Paise & "00", 2)) & " Paise"
End If
RupeesInWords = Application.WorksheetFunction.Trim(RupeesInWords) & " Only"
End Function
Private Function ConvertToWords(ByVal MyNumber As String) As String
Dim Crores As String
Dim Lakhs As String
Dim Thousands As String
Dim Hundreds As String
Dim Temp As String
MyNumber = Right("0000000000" & MyNumber, 10)
Crores = Left(MyNumber, 3)
Lakhs = Mid(MyNumber, 4, 2)
Thousands = Mid(MyNumber, 6, 2)
Hundreds = Right(MyNumber, 3)
If Val(Crores) > 0 Then
Temp = Temp & ConvertHundreds(Crores) & " Crore "
End If
If Val(Lakhs) > 0 Then
Temp = Temp & ConvertHundreds(Lakhs) & " Lakh "
End If
If Val(Thousands) > 0 Then
Temp = Temp & ConvertHundreds(Thousands) & " Thousand "
End If
If Val(Hundreds) > 0 Then
Temp = Temp & ConvertHundreds(Hundreds)
End If
ConvertToWords = Temp
End Function
Private Function ConvertHundreds(ByVal MyNumber As String) As String
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
If Mid(MyNumber, 1, 1) <> "0" Then
Result = ConvertOneDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If
If Mid(MyNumber, 2, 2) <> "00" Then
If Result <> "" Then Result = Result & ""
Result = Result & ConvertTwoDigits(Mid(MyNumber, 2, 2))
End If
ConvertHundreds = Result
End Function
Private Function ConvertTwoDigits(ByVal MyNumber As String) As String
Dim Result As String
If Val(Left(MyNumber, 1)) = 1 Then
Select Case Val(MyNumber)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
End Select
Else
Select Case Val(Left(MyNumber, 1))
Case 2: Result = "Twenty "
Case 3: Result = "Thirty "
Case 4: Result = "Forty "
Case 5: Result = "Fifty "
Case 6: Result = "Sixty "
Case 7: Result = "Seventy "
Case 8: Result = "Eighty "
Case 9: Result = "Ninety "
End Select
If Val(Right(MyNumber, 1)) > 0 Then
Result = Result & ConvertOneDigit(Right(MyNumber, 1))
End If
End If
ConvertTwoDigits = Result
End Function
Private Function ConvertOneDigit(ByVal MyNumber As String) As String
Select Case Val(MyNumber)
Case 1: ConvertOneDigit = "One"
Case 2: ConvertOneDigit = "Two"
Case 3: ConvertOneDigit = "Three"
Case 4: ConvertOneDigit = "Four"
Case 5: ConvertOneDigit = "Five"
Case 6: ConvertOneDigit = "Six"
Case 7: ConvertOneDigit = "Seven"
Case 8: ConvertOneDigit = "Eight"
Case 9: ConvertOneDigit = "Nine"
Case Else: ConvertOneDigit = ""
End Select
End Function
EXCEL తెలుగు HYDERABAD TELANGANA
Comments
Post a Comment