WD2000: VBA: How to Count the Occurrences of a Word or Phrase

Article translations Article translations
Article ID: 240157 - View products that this article applies to.
This article was previously published under Q240157
Expand all | Collapse all

On This Page

SUMMARY

Microsoft Word does not provide a built-in feature to count the number of times a word or phrase is used in a document. However, by using the programming language in Word, you can create a routine that performs this function.

MORE INFORMATION

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.

Create the Macro

Sub CountWordPhrase()

Dim x, Response, ExitResponse
Dim y As Integer

' If an error occurs, continue the macro.
On Error Resume Next

AskAgain:

' Ask for the text to count.
x = InputBox("Type the word you want to count and then click OK." _
& Chr$(13) & Chr$(13) & _
"NOTE: This macro will find a whole word only. If the text you typed " _
& "is part of a larger string, it will also be found.")

' If text typed is blank or spaces, then ask to quit.
If x = "" Or x = " " Then
    ExitResponse = MsgBox("You either clicked Cancel or you did " & _
    "not type a word. Do you want to quit?", vbYesNo)
    
    If ExitResponse = 6 Then
        End
    Else
        ' If answer No to quit, then ask for text to count again.
        GoTo AskAgain
    End If
Else

    ' Search for and count occurrences of the text typed.
    With ActiveDocument.Content.find
        Do While .Execute(FindText:=x, Forward:=True, Format:=True, _
           MatchWholeWord:=True) = True
            
           ' Display message in Word's Status Bar.
           StatusBar = "Word is counting the occurrences of the text " & _
           Chr$(34) & x & Chr$(34) & "."
           
           y = y + 1
        Loop
    End With

' Display Message Box with results.
Response = MsgBox("The text " & Chr$(34) & x & Chr$(34) & " was found" _
& Str$(y) & " times.", vbOKOnly)

End If
End Sub
				

Assign a Shortcut Key to the Macro

You can assign a shortcut key to a macro by using the following steps:
  1. On the Tools menu, click Customize.
  2. Click Keyboard.
  3. In the Save changes in box, click the current document name or template in which you want to save the shortcut key changes.
  4. In the Categories box, click Macros.
  5. In the box to the right, click the name of the macro.

    NOTE: Any shortcut keys that are currently assigned to the macro will appear in the Current keys box.
  6. In the Press new shortcut key box, type the shortcut key combination you want to assign.
  7. Click Assign.

Place the Macro on a Menu or Toolbar

You can assign the macro to a menu or toolbar button by using the following steps:
  1. On the Tools menu, click Customize.
  2. Click the Commands tab.
  3. Under Categories, click Macros.
  4. In the Commands list, right-click the macro and drag the macro to the menu or toolbar you want.
  5. Click Close to close the Customize dialog box.

REFERENCES

For more information about how to use the sample code in this article, click the article number below to view the article in the Microsoft Knowledge Base:
212536 OFF2000: How to Run Sample Code from Knowledge Base Articles

Properties

Article ID: 240157 - Last Review: October 11, 2006 - Revision: 3.2
APPLIES TO
  • Microsoft Word 2000 Standard Edition
Keywords: 
kbhowto kbmacroexample kbprogramming KB240157

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com