Written by Allen Wyatt (last updated February 3, 2024)
This tip applies to Word 2007, 2010, 2013, 2016, 2019, 2021, and Word in Microsoft 365
Derek needs a way to find, in a document, the next time the typeface (font name) changes. For instance, if the insertion point is within the middle of the document, he would like Word to let him know, starting at that point, where the next change occurs. Derek wonders if there is a way to accomplish such a task.
There is no built-in way to accomplish this task, though you may be able to visually tell when the typeface has changed. I can often tell by simply increasing the zoom factor for the document (say, to 200% or 250%) and then visually scanning the document to look for changes in appearance. Of course, this will depend on the visual disparity between the two adjacent fonts.
If you prefer a macro-based solution, you could create one that saves the typeface name at the current insertion point location and then steps through each remaining character of the document. If the typeface differs from the original one, then you can notify the user. Here is an example of such a macro:
Sub ChangeOfFont() Dim fntName As String Dim aRange As Range Set aRange = Selection.Range aRange.Collapse Direction:=wdCollapseStart aRange.MoveEnd Unit:=wdCharacter fntName = aRange.Font.Name Do aRange.MoveEnd Unit:=wdCharacter aRange.MoveStart Unit:=wdCharacter Loop Until aRange.Font.Name <> fntName Or _ aRange.Bookmarks.Exists("\EndOfDoc") aRange.Select If aRange.Bookmarks.Exists("\EndOfDoc") Then MsgBox "End of document" Else MsgBox "Font change from " & fntName & " to " & aRange.Font.Name End If End Sub
The majority of work is done in the Do loop, where each character's font is checked to see if it has changed. Note that the loop also checks to see if the end of the document is reached, at which point you would want the macro to stop.
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 (5131) applies to Microsoft Word 2007, 2010, 2013, 2016, 2019, 2021, and Word in Microsoft 365.
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!
Want to grab some interactive input from a user in your macro? The best way to do that is with the InputBox function, ...
Discover MoreIf you save your macros in your Normal template, they'll be available whenever you are using Word. What if you don't want ...
Discover MoreIf your macro needs to communicate with a user, one simple way to do it is to use a message box. Here's how to use this ...
Discover MoreFREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
There are currently no comments for this tip. (Be the first to leave your comment—just use the simple form above!)
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 © 2025 Sharon Parq Associates, Inc.
Comments