Please Note: This article is written for users of the following Microsoft Word versions: 2007, 2010, 2013, 2016, 2019, and Word in Microsoft 365. 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: Finding Text Not Using a Particular Font.
Written by Allen Wyatt (last updated January 6, 2022)
This tip applies to Word 2007, 2010, 2013, 2016, 2019, and Word in Microsoft 365
Hilary notes that most of the documents their company uses are standardized on a Times Roman font. However, once in a while someone will edit a document and apply a different font to some of the text it contains. She'd like to easily find those "formatting anomalies." Hilary wonders if there is a way to search a document for text that is not using a particular font.
There are a couple of ways that you can go about finding what you need and, potentially, fixing the problem. First, you could use Find and Replace in this manner:
Figure 1. The Find Font dialog box.
At this point, all instances of Times Roman in your document are highlighted. You can easily scroll through the document to see what isn't highlighted—these are the "anomalies" you are seeking.
You could also use Find and Replace to apply some stand-out formatting to text that isn't in Times Roman font. Just figure out some formatting that you are not using in the document, such as double underlines or red text. Select the whole document (Ctrl+A) and apply that formatting to the whole document. Then use Find and Replace to find all instances to Times Roman (see the steps above) and replace it with Times Roman without the stand-out formatting you previously applied. What you end up with is only the text that is not Times Roman formatted with the stand-out formatting.
If you prefer, you can use a macro to modify the font used in the document. The following is a short little macro that looks at the font used for each word in your document:
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
If the font used for a word doesn't match what you want, then the routine changes the font. The only thing you'll need to do to make the macro work in your case is to change the desired font name on two lines. (You'll want to use the font name exactly as it appears in the list of fonts usable by Word. Pay particular attention to capitalization.)
Another approach is to simply check each character in the document and highlight the character if it doesn't use your desired font. The following macro highlights the offending characters in yellow:
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
One of the nice features of this macro is that it prompts you for the font that you find acceptable. It then checks to make sure that what you enter matches one of the fonts available in the system. Because the macro checks each character in the document individually, you may need to be patient while it is running. The longer the document, the longer the macro takes to complete its work.
If you simply want to find the next occurrence of a font change, then the following very short macro is quite handy:
Sub FindDifferentFont() Selection.SelectCurrentFont Selection.Collapse wdCollapseEnd End sub
The SelectCurrentFont method extends the current selection until there is a change in either the font (typeface) or the font size. So if you start at the beginning of the document and run the macro (perhaps you could assign it to a shortcut key), then the insertion point is moved to where the current font ends and a new font begins.
Note:
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (11070) applies to Microsoft Word 2007, 2010, 2013, 2016, 2019, and Word in Microsoft 365. You can find a version of this tip for the older menu interface of Word here: Finding Text Not Using a Particular Font.
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!
The Find and Replace tool in Word is very powerful. You can use it to search not only for text but for the formatting ...
Discover MoreSearching for text having (or not having) specific formatting is generally pretty easy. It is more difficult to search ...
Discover MoreNeed to look for a piece of text possessing a particular formatting attribute? Here's the skinny on how this is accomplished.
Discover MoreFREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
2022-10-04 20:32:10
DJ
Hi there, do you have sub to remove highlighted text made by the routine - Sub HighlightOtherFonts()? I have a document in which the para headings are different ot the para text. So the Sub - Sub HighlightOtherFonts() works well in that it highlightd the para headings correctly and I check the paa text for any highlights, but then I need to remove all highlighted made.
2019-03-28 16:41:02
Shelley List
I inserted a symbol using Insert > Symbol.
I chose a symbol from the Wingdings font.
When the symbol was inserted, and I selected the symbol, the font box read "Calibri." In other words, the symbol did not appear to be in Wingdings.
Therefore, when I searched for any characters in Wingdings font, nothing was found.
However, when I tried to get another software application to digest my Word document, the existence of a character in the Wingdings font broke the process. So clearly, some level of Word considers this character to be in Wingdings, not in Calibri.
Is there any way I can find all the Wingdings in my document?
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.
Visit the WordTips channel on YouTube
FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2024 Sharon Parq Associates, Inc.
Comments