Microsoft Word allows users to create custom styles that can be applied to text to quickly format documents. However, there is no built-in feature to easily view or print just a list of the custom styles. This article explains how to use VBA (Visual Basic for Applications) to create a macro that will display the custom styles used in a Word document.
Why Document Custom Styles
When working with large Word documents using many custom styles, it can be difficult to keep track of and manage all the different styles. Getting a list of only the custom styles used can be useful for:
- Organization – Seeing all custom styles in one place for reference.
- Consistency – Ensuring custom styles follow naming conventions.
- Troubleshooting – Identifying styles that may be causing formatting issues.
- Templates – Creating a record of styles to reuse for template documents.
The VBA Macro to Print Custom Styles
The following VBA macro code steps through all styles in the active Word document and compiles a list of only the custom styles into a string. It then displays this string in a message box for reference.
Sub PrintCustomStyles()
Dim docThis As Document
Dim styItem As Style
Dim sUserDef(499) As String
Set docThis = ActiveDocument
For Each styItem In docThis.Styles
If styItem.BuiltIn = False Then
sUserDef(styItem.Index) = styItem.NameLocal
End If
Next
Dim sOut As String
Dim I As Long
For I = 1 To 499
If sUserDef(I) <> "" Then
sOut = sOut & sUserDef(I) & vbCrLf
End If
Next I
MsgBox sOut
End Sub
To use this macro:
- Copy the VBA code into a module in the Word document’s VBA editor
- Run the
PrintCustomStyles
macro - A message box will display showing a list of the custom styles
The key points of how the macro works:
- Loops through all styles using
For Each
- Checks if style is custom using
.BuiltIn = False
- Adds custom style names to an array
- Concatenates array into string with line breaks
- Displays string in message box
This provides an easy way to get a printout of only custom styles in a Word document using VBA.
Enhancing the Custom Styles Macro
There are many ways the custom styles macro could be enhanced, such as:
Print to Word Document or Text File
Instead of displaying in a message box, the list of styles could be printed to a Word document or exported to a text file instead for easier reference.
Style Usage Statistics
The macro could be updated to also display usage statistics next to each style, showing how many times it’s applied in the document.
Apply Styles to Template
The custom styles could be programmatically copied over to a template document to easily reuse them using VBA.
Interactive Customization
Options could be added to prompt the user on which styles to include and customize the output.
Error Handling
Error handling could be included to account for any errors during execution and make the macro more robust.
The possibilities are endless for enhancing and customizing this macro to fit an organization’s specific needs around documenting custom styles in Word.
Conclusion
Using VBA to document custom styles provides a simple but useful way to get a handle on custom styles used in large Word documents. The macro code can serve as a starting point to build more advanced custom style management functionality tailored to specific requirements.
With some knowledge of Word VBA, the macro can be easily set up to run in any document. And it can be a huge time saver versus trying to manually keep track styles across multiple documents and templates.
Hopefully this gives you ideas on how VBA can be leveraged to not only automate formatting Word documents, but also to document and manage custom styles more effectively.