Written by Allen Wyatt (last updated January 1, 2022)
This tip applies to Word 2007, 2010, 2013, 2016, 2019, Word in Microsoft 365, and 2021
Raj wonders whether styles can be saved in a Word macro and run later as part of a "sanity check" to make sure that only the template styles are applied to a document and nothing else.
The answer to this question is actually much more complicated than you might surmise. If Raj is wanting to stop the user from adding styles either directly (by creating new styles) or indirectly (by using copy and paste from other sources), then there are actually several things you can try, including a few macros. These have been covered in the following (em>WordTip:
https://wordribbon.tips.net/T012698
Beyond what is covered in that tip, if all you want to do is check to see whether the styles used in a document are on an "approved list" of styles, then it is a relatively simple task. The names of styles can easily be stored in a string array and then compared to the styles applied to each paragraph in a document. You can step through the paragraphs in a document and examine whether the styles are in the approved list using a structure similar to this one:
sTemp = "" For Each p In ActiveDocument.Content.Paragraphs sPStyle = p.Style bNotFound = True For J = 1 To iNumValid If sPStyle = sValidStyles(J) Then bNotFound = False Next J If bNotFound Then sTemp = sTemp & sPStyle & vbCrLf End If Next p
This example is simply a code snippet; your full macro would need to set up a string array (sValidStyles) that contains all the valid style names along with iNumValid which is the number of array elements. When the snippet is complete, the sTemp variable contains the names of all the styles used in the document that aren't in the sValidStyles array. (If an invalid style appears in the document more than once, it will appear in sTemp more than once.)
If you are looking for a macro that will actually do a "sanity check" to see if a style has been modified, then the problem is astronomically more complex. Styles can have scores or hundreds of possible settings and storing each of those settings for each valid style would be a nightmare. In that situation it is better to go with the protection-based approaches detailed in the tip linked to above.
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 (12959) applies to Microsoft Word 2007, 2010, 2013, 2016, 2019, Word in Microsoft 365, and 2021.
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!
Smart quotes can be helpful in making a great-looking document, but at times, they can be a real pain. Wouldn’t it be ...
Discover MoreIf you use the Styles task pane, you may have noticed that it can list more than just styles. It also lists variants of ...
Discover MoreWord allows you to assign priority values to individual styles. This tip explains what those values mean, along with how ...
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 © 2023 Sharon Parq Associates, Inc.
Comments