Calculator
Number to Words
- Home
- Calculators
- Number to Words
Number to words Converter
Enter the values below. The value will be displayed in words in the chosen language.
Number
Number to convert to words
Language
Number in words
Number in words
Sponsored
Sponsored
To convert a number to text without getting lost in the spelling (dashes..etc), it is possible to get Word to do the work for you. In this article, we will show you how to format this in Microsoft Word.
To convert numbers into words in MS Word:
-
Create a new field by pressing on CTRL-F9
- {} Will appear on the screen
- Fill it with the desired value preceded by ‘=’ and followed by a code (*cardtext) indicating the format to be used in this field.
- For example: if you want Word to write down the number: 125
{=125*cardtext}
- Press F9 to update the field value
- The number appears in words: one hundred twenty-five
- To change the number, right-click on the entry and select Toggle Field Codes.
- Edit the value and press F9 to update the field.
- This procedure does not work with decimal numbers, in this case, create two fields and insert the word «comma» between them:
{=12*cardtext}comma{=45*cardtext}
- This procedure is limited to the number 999999, beyond, Word reports an error.
- Other formatting codes can be assigned:
- *ROMAN — For upper-case Roman numeral,
- *roman — For lower-case Roman numeral
- This procedure is limited to the number 32767, beyond, Word reports an error.
Need more help with Word? Check out our forum!
Some times we need numbers in both numerical format and in words. Here I am going to explain how to use VBA module to convert Number to Words in Microsoft Word.
If you are looking for a method to use in MS — Excel, please check my earlier blog post : Convert Currency in Number to Words (Indian Rupees) — MS Excel
Step 1: Enable Developer Tab In MS Word
If you can’t see the developer tab as like in the below picture, Go to File -> Options -> Customize Ribbon -> Check on ‘Devloper’ under Main Tabs heading, Developer menu enabling process is explained here.
Step 2: Add the Module Code
Click on the Visual Basic option in the Developer Ribbon. Right click on the ‘Project’ title and Insert -> Module
Copy and paste the below code in code window of the Module1.
- Version 2
- Version 1
Version 2 adds ‘and’ before 1st, 10th, 100th and decimal place
' For more info visit www.livetolearn.in
Sub ConvertCurrencyToEnglish()
MyNumber = Val(Selection.Text)
Dim Temp
Dim Rupees, Paise
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " lakh "
Place(4) = " Crore "
' Convert MyNumber to a string, trimming extra spaces.
MyNumber = Trim(Str(MyNumber))
' Find decimal place.
DecimalPlace = InStr(MyNumber, ".")
' If we find decimal place...
If DecimalPlace > 0 Then
' Convert Paise
Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)
' Hi! Note the above line Mid function it gives right portion
' after the decimal point
'if only . and no numbers such as 789. accures, mid returns nothing
' to avoid error we added 00
' Left function gives only left portion of the string with specified places here 2
Paise = ConvertTens(Temp)
' Strip off paise from remainder to convert.
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
If MyNumber <> "" Then
' Convert last 3 digits of MyNumber to Indian Rupees.
Temp = ConvertHundreds(Right(MyNumber, 3), Paise, MyNumber)
If Temp <> "" Then Rupees = Temp & Place(Count) & Rupees
If Len(MyNumber) > 3 Then
' Remove last 3 converted digits from MyNumber.
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
End If
' convert last two digits to of mynumber
Count = 2
Do While MyNumber <> ""
Temp = ConvertTens(Right("0" & MyNumber, 2))
If Temp <> "" Then Rupees = Temp & Place(Count) & Rupees
If Len(MyNumber) > 2 Then
' Remove last 2 converted digits from MyNumber.
MyNumber = Left(MyNumber, Len(MyNumber) - 2)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
' Clean up rupees.
Select Case Rupees
Case ""
Rupees = ""
Case "One"
Rupees = "Rupee One"
Case Else
Rupees = "Rupees " & Rupees
End Select
' Clean up paise.
Select Case Paise
Case ""
Paise = ""
Case "One"
Paise = "One Paise"
Case Else
Paise = Paise & " Paise"
End Select
If Rupees = "" Then
Result = Paise & " Only"
ElseIf Paise = "" Then
Result = Rupees & " Only"
Else
Result = Rupees & " and " & Paise & " Only"
End If
Selection.Text = Result
End Sub
Private Function ConvertDigit(ByVal MyDigit)
Select Case Val(MyDigit)
Case 1: ConvertDigit = "One"
Case 2: ConvertDigit = "Two"
Case 3: ConvertDigit = "Three"
Case 4: ConvertDigit = "Four"
Case 5: ConvertDigit = "Five"
Case 6: ConvertDigit = "Six"
Case 7: ConvertDigit = "Seven"
Case 8: ConvertDigit = "Eight"
Case 9: ConvertDigit = "Nine"
Case Else: ConvertDigit = ""
End Select
End Function
Private Function ConvertHundreds(ByVal MyNumber, ByVal Paise, ByVal OriginalNumber)
Dim Result As String
Result10or1 = ""
Result100 = ""
' Exit if there is nothing to convert.
If Val(MyNumber) = 0 Then Exit Function
' Append leading zeros to number.
MyNumber = Right("000" & MyNumber, 3)
' Do we have a hundreds place digit to convert?
If Left(MyNumber, 1) <> "0" Then
Result100 = ConvertDigit(Left(MyNumber, 1)) & " Hundred "
End If
' Do we have a tens place digit to convert?
If Mid(MyNumber, 2, 1) <> "0" Then
Result10or1 = ConvertTens(Mid(MyNumber, 2))
Else
' If not, then convert the ones place digit.
Result10or1 = ConvertDigit(Mid(MyNumber, 3))
End If
' if 1st & 10th places are zero, place 'and' before hundreds
' else place before 10th place
'if paise not exists add 100
If (Paise <> "") Then
Result = Result100 + Result10or1
Else
If (Result100 <> "") Then
If (Result10or1 <> "") Then
Result = Result100 + "and " + Result10or1
Else
If (Len(OriginalNumber) > 3) Then
Result = "and " + Result100
Else
Result = Result100
End If
End If
Else
If (Result10or1 <> "") Then
If (Len(OriginalNumber) > 2) Then
Result = "and " + Result10or1
Else
Result = Result10or1
End If
End If
End If
End If
ConvertHundreds = Trim(Result)
End Function
Private Function ConvertTens(ByVal MyTens)
Dim Result As String
' Is value between 10 and 19?
If Val(Left(MyTens, 1)) = 1 Then
Select Case Val(MyTens)
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
' .. otherwise it's between 20 and 99.
Select Case Val(Left(MyTens, 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
' Convert ones place digit.
Result = Result & ConvertDigit(Right(MyTens, 1))
End If
ConvertTens = Trim(Result)
End Function
Version 1 adds ‘and’ only before decimal place (paise)
' For more info visit www.livetolearn.in
Sub ConvertCurrencyToEnglish()
MyNumber = Val(Selection.Text)
Dim Temp
Dim Rupees, Paise
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " lakh "
Place(4) = " Crore "
' Convert MyNumber to a string, trimming extra spaces.
MyNumber = Trim(Str(MyNumber))
' Find decimal place.
DecimalPlace = InStr(MyNumber, ".")
' If we find decimal place...
If DecimalPlace > 0 Then
' Convert Paise
Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)
' Hi! Note the above line Mid function it gives right portion
' after the decimal point
'if only . and no numbers such as 789. accures, mid returns nothing
' to avoid error we added 00
' Left function gives only left portion of the string with specified places here 2
Paise = ConvertTens(Temp)
' Strip off paise from remainder to convert.
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
If MyNumber <> "" Then
' Convert last 3 digits of MyNumber to Indian Rupees.
Temp = ConvertHundreds(Right(MyNumber, 3))
If Temp <> "" Then Rupees = Temp & Place(Count) & Rupees
If Len(MyNumber) > 3 Then
' Remove last 3 converted digits from MyNumber.
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
End If
' convert last two digits to of mynumber
Count = 2
Do While MyNumber <> ""
Temp = ConvertTens(Right("0" & MyNumber, 2))
If Temp <> "" Then Rupees = Temp & Place(Count) & Rupees
If Len(MyNumber) > 2 Then
' Remove last 2 converted digits from MyNumber.
MyNumber = Left(MyNumber, Len(MyNumber) - 2)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
' Clean up rupees.
Select Case Rupees
Case ""
Rupees = ""
Case "One"
Rupees = "One Rupee"
Case Else
Rupees = Rupees & " Rupees"
End Select
' Clean up paise.
Select Case Paise
Case ""
Paise = ""
Case "One"
Paise = "One Paise"
Case Else
Paise = Paise & " Paise"
End Select
If Rupees = "" Then
Result = Paise
ElseIf Paise = "" Then
Result = Rupees
Else
Result = Rupees & " and " & Paise
End If
Selection.Text = Result
End Sub
Private Function ConvertDigit(ByVal MyDigit)
Select Case Val(MyDigit)
Case 1: ConvertDigit = "One"
Case 2: ConvertDigit = "Two"
Case 3: ConvertDigit = "Three"
Case 4: ConvertDigit = "Four"
Case 5: ConvertDigit = "Five"
Case 6: ConvertDigit = "Six"
Case 7: ConvertDigit = "Seven"
Case 8: ConvertDigit = "Eight"
Case 9: ConvertDigit = "Nine"
Case Else: ConvertDigit = ""
End Select
End Function
Private Function ConvertHundreds(ByVal MyNumber)
Dim Result As String
' Exit if there is nothing to convert.
If Val(MyNumber) = 0 Then Exit Function
' Append leading zeros to number.
MyNumber = Right("000" & MyNumber, 3)
' Do we have a hundreds place digit to convert?
If Left(MyNumber, 1) <> "0" Then
Result = ConvertDigit(Left(MyNumber, 1)) & " Hundred "
End If
' Do we have a tens place digit to convert?
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & ConvertTens(Mid(MyNumber, 2))
Else
' If not, then convert the ones place digit.
Result = Result & ConvertDigit(Mid(MyNumber, 3))
End If
ConvertHundreds = Trim(Result)
End Function
Private Function ConvertTens(ByVal MyTens)
Dim Result As String
' Is value between 10 and 19?
If Val(Left(MyTens, 1)) = 1 Then
Select Case Val(MyTens)
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
' .. otherwise it's between 20 and 99.
Select Case Val(Left(MyTens, 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
' Convert ones place digit.
Result = Result & ConvertDigit(Right(MyTens, 1))
End If
ConvertTens = Result
End Function
You can also rename the project title (Right click on the ‘Project’ title, Project Properties, provide a name you wish. For example ‘MyWordTools’)
Step 3: Create a shortcut button to run the Macro
Click on the customize quick access button in MS Word Window top bar and chose ‘More Commands’ option
Now the Word options window will appear as like below.
Choose Macros from the ‘Choose commands from’ combo box.
Double click on the our custom module Name, now the icon will be added to the right side. Click ‘Ok’ to save and close.
Now save the document as ‘Macro Enabled Word document’ (*.docm)
Now select the number in your document, then click on the button in the quick access bar, the number will be converted into words.
Demo video
Comments
Please Note:
This article is written for users of the following Microsoft Word versions: 97, 2000, 2002, and 2003. If you are using a later version (Word 2007 or later), this tip may not work for you. For a version of this tip written specifically for later versions of Word, click here: Converting Numbers to Text.
Written by Allen Wyatt (last updated June 27, 2018)
This tip applies to Word 97, 2000, 2002, and 2003
There are times when you need to spell numbers out. For instance, you may want to spell out «1234» as «one thousand two hundred thirty-four.» Word has no built-in function that will do the conversion for you, so you are left to create a macro that will handle the conversion.
The following macro, BigCardText, will convert any number between 0 and 999,999,999. To use it, simply place the insertion point either within the number you want to convert or just to the right of the number (if it is a single digit).
Sub BigCardText() Dim sDigits As String Dim sBigStuff As String sBigStuff = "" ' Select the full number in which the insertion point is located Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdMove Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend ' Store the digits in a variable sDigits = Trim(Selection.Text) If Val(sDigits) > 999999 Then If Val(sDigits) <= 999999999 Then sBigStuff = Trim(Int(Str(Val(sDigits) / 1000000))) ' Create a field containing the big digits and ' the cardtext format flag Selection.Fields.Add Range:=Selection.Range, _ Type:=wdFieldEmpty, Text:="= " + sBigStuff + " * CardText", _ PreserveFormatting:=True ' Select the field and copy it Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend sBigStuff = Selection.Text & " million " sDigits = Right(sDigits, 6) End If End If If Val(sDigits) <= 999999 Then ' Create a field containing the digits and the cardtext format flag Selection.Fields.Add Range:=Selection.Range, _ Type:=wdFieldEmpty, Text:="= " + sDigits + " * CardText", _ PreserveFormatting:=True ' Select the field and copy it Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend sDigits = sBigStuff & Selection.Text ' Now put the words in the document Selection.TypeText Text:=sDigits Selection.TypeText Text:=" " Else MsgBox "Number too large", vbOKOnly End If End Sub
When using the macro, make sure that the number you are converting does not contain extraneous information, such as dollar signs or commas. When you run BigCardText, the macro checks to see if the selected number is over one million. If it is, it first works on the portion above one million, converting it to words. Then, the value below one million is converted. The final, full wording is put together and pasted back into the document, ready for use.
If you would like to know how to use the macros described on this page (or on any other page on the WordTips sites), I’ve prepared a special page that includes helpful information. Click here to open that special page in a new browser tab.
WordTips is your source for cost-effective Microsoft Word training.
(Microsoft Word is the most popular word processing software in the world.)
This tip (203) applies to Microsoft Word 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Word (Word 2007 and later) here: Converting Numbers to Text.
Author Bio
With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company. Learn more about Allen…
MORE FROM ALLEN
Printing without Footnotes
Want to print your document without all those footnotes included? It’s not quite as easy as you might think, as this tip …
Discover More
Backing Up Quick Access Toolbars
The Quick Access Toolbar is a place where you can easily put your customizations. If you want to back up that toolbar …
Discover More
Removing Confusion When Using AutoCorrect
AutoCorrect is a great help when writing, as it can allow you to create regular blocks of text easily. This can cause …
Discover More
How to Quickly Convert Numbers to English Words
Have you ever wondered how to say «this number» or «that number» in words in the English language? Instead of writing the number as 1 or 2, you may prefer to write it as «one» or «two» instead, but need a quick way to figure out how to write the number in English.
Or, if there is a big number, like 1,234,567, you may be wondering, «How do I say this number in words?».
If so, the easiest way to convert numbers to English words is to use the Numbers to Words Converter. This is an online tool that will instantly tell you how to write a number.
Alternatively, you can also use Excel or Google Sheets, and here’s how:
Excel
The quickest and easiest way to convert numbers to words in Excel is to use the «SpellNumber» function. Here’s how to use it in two simple steps:
- Type the formula =SpellNumber(A1) into the cell where you want the number to appear
- Press Enter
(A1 contains the number you want to convert)
Alternatively, you can also use the following formula by changing the «NUMBER» with the number you want to convert:
- Type the formula =SpellNumber(NUMBER)
- Press Enter
Google Sheets
To convert numbers to text in Excel, you can use the «to_text» function. However, this will not convert the number to words, but it will convert it to string.
To use this function, simply:
- Type the formula =to_text(A1)
- Press Enter
(A1 contains the number you want to convert)
To convert the number to English words in Google Sheets, you can use a Numbers to Words Converter.
What Is the Numbers to Words Converter?
If you’ve ever wondered, «How do I say this number in words?», the Numbers to Words Converter is the tool you need.
This online tool is easy to use and is one of the quickest ways to convert a number to words in English. All you need to do is type the numbers and the number will automatically appear in words.
The Numbers to Words Converter works with all numbers, no matter whether it is just one or a very, very long string of numbers.
How to Use the Numbers to Words Converter
Here’s how to use the Numbers to Words Converter in two simple steps:
- Type your number into the box
- The number will automatically appear in words in the other box