## How to convert Figures to Words in MS Excel 2007

This guide will help you to convert number cells in MS Excel 2007 into their corresponding words in Rupees / Paise.

**Eg: Convert 5252 to Five Thousand Two Hundred and Fifty Two Only**

This guide is especially useful for businessmen, Chartered Accountants and traders, who maintain their data in MS Excel and often print Invoices, Vouchers or Cheques, on which they need to type in the Figure in Words manually.

This tutorial will help you convert the cells typed in figures to words - automatically, using a simple formula. The Microsoft Version is customized for Dollars / Cents.

**This version is specifically for Indian businesses which use Rupees / Paise.**

**Step 1: **Open Excel 2007

**Step 2:** Type Alt + F11 to start the Visual Basic Editor

**Step 3:** In the Visual Basic Editor go to Insert > Module.

**Step 4:** When the New Module Workspace opens on the right, copy and paste the following code into it

Option Explicit

'Main Function

Function SpellNumber(ByVal MyNumber)

Dim Rupees, Paise, Temp

Dim DecimalPlace, Count

ReDim Place(9) As String

Place(2) = " Thousand "

Place(3) = " Million "

Place(4) = " Billion "

Place(5) = " Trillion "

' String representation of amount.

MyNumber = Trim(Str(MyNumber))

' Position of decimal place 0 if none.

DecimalPlace = InStr(MyNumber, ".")

' Convert Paise and set MyNumber to Rupee amount.

If DecimalPlace > 0 Then

Paise = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _

"00", 2))

MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))

End If

Count = 1

Do While MyNumber <> ""

Temp = GetHundreds(Right(MyNumber, 3))

If Temp <> "" Then Rupees = Temp & Place(Count) & Rupees

If Len(MyNumber) > 3 Then

MyNumber = Left(MyNumber, Len(MyNumber) - 3)

Else

MyNumber = ""

End If

Count = Count + 1

Loop

Select Case Rupees

Case ""

Rupees = "No Rupees"

Case "One"

Rupees = "One Rupee"

Case Else

Rupees = Rupees & " Rupees"

End Select

Select Case Paise

Case ""

Paise = " and No Paise"

Case "One"

Paise = " and One Paisa"

Case Else

Paise = " and " & Paise & " Paise"

End Select

SpellNumber = Rupees & Paise

End Function' Converts a number from 100-999 into text

Function GetHundreds(ByVal MyNumber)

Dim Result As String

If Val(MyNumber) = 0 Then Exit Function

MyNumber = Right("000" & MyNumber, 3)

' Convert the hundreds place.

If Mid(MyNumber, 1, 1) <> "0" Then

Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "

End If

' Convert the tens and ones place.

If Mid(MyNumber, 2, 1) <> "0" Then

Result = Result & GetTens(Mid(MyNumber, 2))

Else

Result = Result & GetDigit(Mid(MyNumber, 3))

End If

GetHundreds = Result

End Function' Converts a number from 10 to 99 into text.

Function GetTens(TensText)

Dim Result As String

Result = "" ' Null out the temporary function value.

If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...

Select Case Val(TensText)

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"

Case Else

End Select

Else ' If value between 20-99...

Select Case Val(Left(TensText, 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 "

Case Else

End Select

Result = Result & GetDigit _

(Right(TensText, 1)) ' Retrieve ones place.

End If

GetTens = Result

End Function' Converts a number from 1 to 9 into text.

Function GetDigit(Digit)

Select Case Val(Digit)

Case 1: GetDigit = "One"

Case 2: GetDigit = "Two"

Case 3: GetDigit = "Three"

Case 4: GetDigit = "Four"

Case 5: GetDigit = "Five"

Case 6: GetDigit = "Six"

Case 7: GetDigit = "Seven"

Case 8: GetDigit = "Eight"

Case 9: GetDigit = "Nine"

Case Else: GetDigit = ""

End Select

End Function

**Step 5:** Hit the Save button on the Toolbar of the Visual Basic Editor or Type Ctrl + S to save the module. In Excel 2007, you will have to save the file as a .xlsm (Macro-Enabled Excel Workbook).

**Step 6:** In your excel sheet in any cell type the following:

=SpellNumber(A1)

or

=SpellNumber(4253.35)

Where A1 is the cell whose value you want in words.

Note:

This formula will work ONLY within the workbook you have made the changes in. Everytime you want to use it in a new workbook, you will have to perform the steps again.

You will have to enable the macro content in the excel sheet, incase it automatically blocks the macro.