希拉里(Hilary)指出,公司使用的大多数文档都以Times Roman字体标准化。但是,有时会有人编辑文档,并将不同的字体应用于其中包含的某些文本。她想轻松地找到那些“格式异常”。希拉里想知道是否有一种方法可以在文档中搜索未使用特定字体的文本。

有几种方法可以找到所需的内容,并有可能解决问题。首先,您可以通过以下方式使用“查找并替换”:

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

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

。确保“查找内容”框为空。

。单击格式,然后选择字体。 Word将显示“查找字体”对话框。 (请参见图1。)

。使用对话框中的控件来指定您要查找所使用的Times Roman字体。 (只需选择字体。除非您愿意,否则不必指定任何其他设置。)

。单击确定。您要查找的字体规格显示在“查找内容”框的正下方。

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

。单击全部查找。

此时,对话框将关闭,Word将忠实地突出显示文档中所有Times Roman实例。您可以轻松滚动文档以查看未突出显示的内容-这些是您要查找的“异常”。

您还可以使用“查找和替换”将一些出色的格式应用于不是Times Roman字体的文本。只需弄清楚文档中没有使用的某些格式即可,例如双下划线或红色文本。选择整个文档(Ctrl + A),然后将该格式应用于整个文档。然后使用“查找和替换”查找Times Roman的所有实例(请参见上面的步骤),然后将其替换为Times Roman,而不使用先前应用的突出格式。您最终得到的只是未采用杰出格式格式化的Times Roman格式的文本。

如果愿意,可以使用宏来修改文档中使用的字体。以下是一个简短的小宏,它查看文档中每个单词使用的字体:

Sub FixFormatAnomalies()

Dim aWord

For Each aWord In ActiveDocument.Words         If aWord.Font.Name <> "Times Roman" Then             aWord.Font.Name = "Times Roman"

End If     Next aWord End Sub

如果用于单词的字体与您想要的字体不匹配,则例程将更改字体。要使宏正常工作,您唯一需要做的就是在两行中更改所需的字体名称。

(您将希望使用与Word可用的字体列表中显示的字体名称完全相同的字体。请特别注意大小写。)

另一种方法是简单地检查文档中的每个字符,并在不使用所需字体的情况下突出显示该字符。以下宏以黄色突出显示了令人反感的字符:

Sub HighlightOtherFonts()

Dim iCounter As Integer     Dim sFontName As String     Dim sPrompt As String     Dim sTitle As String     Dim sDefault As String     Dim c As Range

' Gets the name of the font as typed by the user     sPrompt = "Type the name of the font that is OK to "

sPrompt = sPrompt & "have in the document."

sTitle = "Acceptable Font Name"

sDefault = ActiveDocument.Styles(wdStyleNormal).Font.Name     sFontName = InputBox(sPrompt, sTitle, sDefault)



' Verifies that the name of the font is valid     For Each sFont In Application.FontNames         If UCase(sFontName) = UCase(sFont) Then             ' Changes the user-typed name of the font to             ' the version recognized by the application             ' Example: 'times new roman' (user-typed) is             ' changed to 'Times New Roman' (application version)

sFontName = sFont             Exit For         Else             ' Terminates the loop if the name of the font is invalid             iCounter = iCounter + 1             If iCounter = FontNames.Count Then                 sPrompt = "The font name as typed does not match "

sPrompt = sPrompt & "any fonts available to the "

sPrompt = sPrompt & "application."

sTitle = "Font Name Not Found"

MsgBox sPrompt, vbOKOnly, sTitle                 Exit Sub             End If         End If     Next sFont

' Checks each character in the document, highlighting     ' if the character's font doesn't match the OK font     For Each c In ActiveDocument.Characters         If c.Font.Name <> sFontName Then             ' Highlight the selected range of text in yellow             c.FormattedText.HighlightColorIndex = wdYellow         End If     Next c End Sub

该宏的一个不错的功能之一是提示您输入可接受的字体。然后检查以确保您输入的内容与系统中可用的字体之一匹配。由于宏会逐个检查文档中的每个字符,因此在运行时可能需要耐心等待。文档越长,宏完成工作所需的时间就越长。

如果您只是想查找下一次出现的字体更改,那么以下非常短的宏非常方便:

Sub FindDifferentFont()

Selection.SelectCurrentFont   Selection.Collapse wdCollapseEnd End sub

SelectCurrentFont方法扩展当前选择,直到字体(字体)或字体大小发生变化。因此,如果您从文档的开头开始并运行宏(也许您可以将其分配给快捷键),则插入点将移动到当前字体的结尾并开始新的字体。

注意:

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

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

(Microsoft Word是世界上最流行的文字处理软件。)此技巧(11069)适用于Microsoft Word 97、2000、2002和2003。您可以为Word(Word 2007)的功能区界面找到此技巧的版本。和更高版本)在这里: