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

如果要手动找出特定单词或短语的出现次数,则可以使用Word的“查找”功能:

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

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

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

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

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

。单击全部查找。

Word在对话框中显示您的单词或短语出现了多少次。如果您需要在35个不同的学生作文中重复20个单词和短语,则该技术虽然方便,但却失去了它的魅力。确实,宏是一种更实用的方法。

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

http://support.microsoft.com/kb/240157

可以相对容易地更改此页面中的代码,以搜索一系列单词或短语并立即显示所有结果。

另一个相当独特的方法是推翻有关学生作文的假设:假设他们使用每个单词或短语(如果有二十个单词和短语,则以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是世界上最流行的文字处理软件。)本技巧(333)适用于Microsoft Word 97、2000、2002和2003。您可以找到用于Word(Word 2007)的功能区界面的本技巧的一个版本。和更高版本)在这里: