大卫是一位老师,他为他的学生分配一系列大约20个单词和短语,他们必须在作文中使用这些单词和短语。每个单词或短语必须至少使用一次。学生每次使用其中一个单词或短语都会获得1分,尽管重复没有什么额外的。 David正在寻找一种简单的方式来标记他们的作品,也许使用一个宏来搜索每个单词和短语并创建某种用法记录。戴夫的愿望是让Word进行搜索和计数,以便他可以将精力集中在评估构图的质量上。

如果要手动找出特定单词或短语的出现次数,则可以使用Word的“查找”功能。如果您使用的是Word 2007,请按照下列步骤操作:

。按Ctrl + F。 Word将显示“查找和替换”对话框的“查找”选项卡。

。在“查找内容”框中,输入要查找的单词或短语。

。单击更多按钮(如果有)。

。如果要搜索单个单词,请单击“仅查找整个单词”复选框。

。单击突出显示找到的所有项目复选框。

。单击全部查找。

Word在对话框中显示您的单词或短语出现了多少次。如果使用Word 2010或Word 2013,则可以更快地找到所需的计数:

。按Ctrl + F。 Word在屏幕左侧显示“导航”任务窗格。在窗格中,选择“浏览”选项卡。

。如果要搜索单个单词,请单击小放大镜按钮右侧的向下箭头,然后选择“选项”。在“选项”对话框中,选择“仅查找整个单词”。

。在“导航”窗格顶部的框中,输入要查找的单词或短语,然后按Enter。

Word在“导航”任务窗格的顶部显示您的单词或短语出现了多少次。

如果您需要在35个不同的学生作文中重复20个单词和短语,这些技术虽然很方便,却失去了一些魅力。确实,宏是一种更实用的方法。

如果可以通过VBA访问“查找和替换”对话框中显示的出现次数,将非常方便。据我所能确定的,此值不可访问。这意味着您必须依靠重复搜索和对宏本身进行计数。 Microsoft知识库中提供了一个很好的示例,它可以做到:

http://support.microsoft.com/?kbid=240157

该页面表明该代码适用于Word 2000,但可以与Word 2007和Word 2010一起正常工作。可以相对容易地更改此页面中的代码,以搜索一系列单词或短语并显示所有结果立刻。另一种非常独特的方法是推翻关于学生作文的假设:假设他们使用每个单词或短语(如果有二十个单词和短语,则以20分开始),如果不使用,则仅减去分数其中之一。

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

宏显示该乐谱的分数,并且还显示该乐谱中未使用的任何单词或短语。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(9261)适用于Microsoft Word 2007、2010和2013。您可以在此处找到适用于Word的较早菜单界面的本技巧的版本:

链接:/ word-Checking_for_Words_and_Phrases [检查单词和短语]。