Convert Amount In Words – MS Excel VB Macro

Convert Numbers into text, a very important n Smart macro used in Invoice, Check Printing, Balance Sheets

Amount In Word in MS Excel
Amount In Word in MS Excel

How to Use

  1. Open VBA use Ctrl and F11
  2. Select Personal.xlsb
  3. Select Module under it
  4. Create new Module by create new file
  5. Paste the below code
  6. Save and close the VBA Window
  7. Come to Sheet where u want to use it
  8. Type =personal.xlsb!AmountInWord(select cell where amount in numbers)
  9. Press Enter

For more such cool tips join our Online Advance Excel & VBA Macro Training Program

Function AmtInWords(amt As Variant) As Variant
Dim FIGURE As Variant
Dim LENFIG As Integer
Dim i As Integer
Dim WORDs(19) As String
Dim tens(9) As String
WORDs(1) = "One"
WORDs(2) = "Two"
WORDs(3) = "Three"
WORDs(4) = "Four"
WORDs(5) = "Five"
WORDs(6) = "Six"
WORDs(7) = "Seven"
WORDs(8) = "Eight"
WORDs(9) = "Nine"
WORDs(10) = "Ten"
WORDs(11) = "Eleven"
WORDs(12) = "Twelve"
WORDs(13) = "Thirteen"
WORDs(14) = "Fourteen"
WORDs(15) = "Fifteen"
WORDs(16) = "Sixteen"
WORDs(17) = "Seventeen"
WORDs(18) = "Eighteen"
WORDs(19) = "Nineteen"
tens(2) = "Twenty"
tens(3) = "Thirty"
tens(4) = "Fourty"
tens(5) = "Fifty"
tens(6) = "Sixty"
tens(7) = "Seventy"
tens(8) = "Eighty"
tens(9) = "Ninety"
FIGURE = amt
FIGURE = Format(FIGURE, "FIXED")
FIGLEN = Len(FIGURE)
If FIGLEN < 12 Then 
FIGURE = Space(12 - FIGLEN) & FIGURE 
End If 
If Val(Left(FIGURE, 9)) > 1 Then
AmtInWords = "Rupees "
ElseIf Val(Left(FIGURE, 9)) = 1 Then
AmtInWords = "Rupee "
End If
For i = 1 To 3
If Val(Left(FIGURE, 2)) < 20 And Val(Left(FIGURE, 2)) > 0 Then
AmtInWords = AmtInWords & WORDs(Val(Left(FIGURE, 2)))
ElseIf Val(Left(FIGURE, 2)) > 19 Then
AmtInWords = AmtInWords & tens(Val(Left(FIGURE, 1)))
AmtInWords = AmtInWords & WORDs(Val(Right(Left(FIGURE, 2), 1)))
End If
If i = 1 And Val(Left(FIGURE, 2)) > 0 Then
AmtInWords = AmtInWords & " Crore "
ElseIf i = 2 And Val(Left(FIGURE, 2)) > 0 Then
AmtInWords = AmtInWords & " Lakh "
ElseIf i = 3 And Val(Left(FIGURE, 2)) > 0 Then
AmtInWords = AmtInWords & " Thousand "
End If
FIGURE = Mid(FIGURE, 3)
Next i
If Val(Left(FIGURE, 1)) > 0 Then
AmtInWords = AmtInWords & WORDs(Val(Left(FIGURE, 1))) + " Hundred "
End If
FIGURE = Mid(FIGURE, 2)
If Val(Left(FIGURE, 2)) < 20 And Val(Left(FIGURE, 2)) > 0 Then
AmtInWords = AmtInWords & WORDs(Val(Left(FIGURE, 2)))
ElseIf Val(Left(FIGURE, 2)) > 19 Then
AmtInWords = AmtInWords & tens(Val(Left(FIGURE, 1)))
AmtInWords = AmtInWords & WORDs(Val(Right(Left(FIGURE, 2), 1)))
End If
FIGURE = Mid(FIGURE, 4)
If Val(FIGURE) > 0 Then
AmtInWords = AmtInWords & " Paise "
If Val(Left(FIGURE, 2)) < 20 And Val(Left(FIGURE, 2)) > 0 Then
AmtInWords = AmtInWords & WORDs(Val(Left(FIGURE, 2)))
ElseIf Val(Left(FIGURE, 2)) > 19 Then
AmtInWords = AmtInWords & tens(Val(Left(FIGURE, 1)))
AmtInWords = AmtInWords & WORDs(Val(Right(Left(FIGURE, 2), 1)))
End If
End If
FIGURE = amt
FIGURE = Format(FIGURE, "FIXED")
If Val(FIGURE) > 0 Then
AmtInWords = AmtInWords & " Only "
End If
End Function

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.