Saving Styles in a Macro

by Allen Wyatt
(last updated February 15, 2014)

1

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.

This 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 WordTip:

http://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 macros 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:

If you would like to know how to use the macros described on this page (or on any other page on the WordTips sites), I've prepared a special page that includes helpful information. Click here to open that special page in a new browser tab.

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, and 2013.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Number of Terms in a Formula

Formulas are made up of operands that separate a series of terms acted upon by the operands. You may want to know, for ...

Discover More

AutoFilling with the Alphabet

If you need to fill a number of cells with a specific sequence of characters (such as the alphabet), there are several ...

Discover More

Filtering Data

When you get a lot of data in a spreadsheet, it can be hard to zero in on the data you really need to work with. That's ...

Discover More

The First and Last Word on Word! Bestselling For Dummies author Dan Gookin puts his usual fun and friendly candor back to work to show you how to navigate Word 2013. Spend more time working and less time trying to figure it all out! Check out Word 2013 For Dummies today!

More WordTips (ribbon)

Reformatting a Document with Messed-Up Styles

If there are lots of hands that touch a document, there are lots of ways those hands can mess up the document. You may be ...

Discover More

Renaming a Style

Styles are invaluable when it comes to applying consistent formatting in and across documents. If you need to rename a ...

Discover More

Turning Off Smart Quotes for Specific Styles

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 More
Subscribe

FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is 5 + 9?

2014-02-18 08:00:25

Bryan

"The names of macros can easily be stored in a string array..."

I think you mean "styles" instead of "macros".

Also in the code, using a boolean variable for a negative is really confusing. Why not call it bFound?


This Site

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.

Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.