Written by Allen Wyatt (last updated July 12, 2022)
This tip applies to Word 97, 2000, 2002, and 2003
In previous issues of WordTips you learned how to use a macro to convert numbers to words. For instance, you can convert 123 to one-hundred twenty-three. The previous incarnations of this macro were limited to numbers below one million. In this version, the ante has been upped a thousand times--this version of the VBA macro will successfully convert numbers up to 999,999,999.
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
You should understand that to use the macro, all you need to do is place the insertion point anywhere within the number you want to convert. You need to make sure, however, that the number 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.
Note:
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (1442) applies to Microsoft Word 97, 2000, 2002, and 2003.
Do More in Less Time! Are you ready to harness the full power of Word 2013 to create professional documents? In this comprehensive guide you'll learn the skills and techniques for efficiently building the documents you need for your professional and your personal life. Check out Word 2013 In Depth today!
Need to remove extraneous characters from a text string? VBA makes it easy through the CleanString method, described in ...
Discover MoreWriting macros often involves selecting different parts of your document so that some sort of processing can be ...
Discover MoreNeed to have your macro insert a bit of text into your document? It's easy to do using the TypeText method.
Discover MoreFREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
2020-09-22 11:51:47
Mohammad Ali
Hello!
I tested your code. Thank you for your effort. But I think your code has a problem. Displays the number 1000000 as follows:
"one million zero"
Thank you for solving the problem.
Thank You.
2020-04-16 09:40:17
zach
will this work if the number has commas and periods in it? like a dollar amount? It seems like i have to run it multiple times to get it to catch the whole number
Got a version of Word that uses the menu interface (Word 97, Word 2000, Word 2002, or Word 2003)? This site is for you! If you use a later version of Word, visit our WordTips site focusing on the ribbon interface.
Visit the WordTips channel on YouTube
FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2024 Sharon Parq Associates, Inc.
Comments