Word convert number to words

Calculator
Number to Words

  1. Home

  2. Calculators
  3. 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

MS Word - Customize Quick Access Bar

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.

MS Word Options - Assigning Macros to button

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.

Number to 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:

    1. Type the formula =SpellNumber(A1) into the cell where you want the number to appear
    2. 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:

    1. Type the formula =SpellNumber(NUMBER)
    2. 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:

    1. Type the formula =to_text(A1)
    2. 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:

    1. Type your number into the box
    2. The number will automatically appear in words in the other box

    Like this post? Please share to your friends:
  • Word contract as a verb
  • Word content table create
  • Word content find execute
  • Word containing other words
  • Word containing c and b