Please Note: This article is written for users of the following Microsoft Word versions: 2007, 2010, and 2013. If you are using an earlier version (Word 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Word, click here: Checking for Words and Phrases.
by Allen Wyatt
(last updated August 2, 2014)
David is a teacher who assigns his students a series of about twenty words and phrases that they must use in a composition. Each word or phrase must be used at least once. The students get one point for each time they use one of the words or phrases, although nothing extra for duplicates. David is looking for an easy way to mark their work, perhaps with a macro that searches for each word and phrase and creates some sort of record of their usage. Dave's desire is for Word to do the searching and counting so that he can focus his energy on assessing the quality of the composition.
If you want to manually figure out how many occurrences there are of a particular word or phrase, you can use Word's Find feature. Follow these steps if you are using Word 2007:
Word shows you, in the dialog box, how many occurrences it located of your word or phrase. You can find the desired counts even faster if you are using Word 2010 or Word 2013:
Word shows you, at the top of the Navigation task pane, how many occurrences it located of your word or phrase.
These techniques, while handy, lose some of their charm if you need to repeat it for twenty words and phrases in thirty-five different student compositions. Indeed, a macro is a more practical approach.
It would be very convenient if the number of occurrences displayed in the Find and Replace dialog box was accessible through VBA. As far as I have been able to determine, this value is not accessible. That means that you must rely on repeated searching and counting in the macro itself. One good example of how this can be done is found in the Microsoft Knowledge Base:
The page indicates that the code is for Word 2000, but it will work just fine with Word 2007 and Word 2010. The code in this page can be changed, relatively easily, to search for a series of words or phrases and display all the results at once. Another rather unique approach is to reverse the assumptions about the student compositions: assume that they use each of the words or phrases (they start with a score of 20 if there are twenty words and phrases) and only subtract points if they don't use one of them.
Sub ScoreCard() Dim iScore As Integer Dim iTopScore As Integer Dim WordList As Variant Dim i As Integer Dim sUnused As String ' Enter the words or phrases in the array below; ' each word or phrase in quotation marks and ' separated by commas WordList = Array("Mr.", "jelly", "wince", _ "proper", "fix", "compound", "high and dry") ' Counts the number of words in the array iTopScore = CInt(UBound(WordList)) + 1 iScore = iTopScore ' Counts the number of "misses" sUnused = "" For i = 1 To iTopScore With Selection.Find .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchAllWordForms = False .MatchWholeWord = True .Execute FindText:=WordList(i - 1) End With If Selection.Find.Found = False Then iScore = iScore - 1 sUnused = sUnused & vbCrLf & WordList(i - 1) End If Next i ' Displays the score If iScore = iTopScore Then sUnused = "All words and phrases were used." Else sUnused = "The following words and phrases" & _ " were not used:" & sUnused End If sUnused = vbCrLf & vbCrLf & sUnused MsgBox Prompt:="The score is " & iScore & _ " of " & iTopScore & sUnused, Title:="What's the Score?" End Sub
The macro displays a score for the composition and also displays any of the words or phrases that were not used in the composition.
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (9261) applies to Microsoft Word 2007, 2010, and 2013. You can find a version of this tip for the older menu interface of Word here: Checking for Words and Phrases.
Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!
When using Word's editing tools, you may notice some extraneous spaces left where you don't want them. This tip addresses one ...Discover More
When working in Draft or Normal view, you may want to view the area just to the left of the document's left margin. Here's a ...Discover More
Do you want Word to always capitalize the first letter appearing after a colon? The program won't do it by default, but there ...Discover More
FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
Got a version of Word that uses the ribbon interface (Word 2007 or later)? This site is for you! If you use an earlier version of Word, visit our WordTips site focusing on the menu interface.