VBA Code


Style Object

A style represents either a built-in style or a user defined style.


Get the Column Number of the selection

This only works for selections, not for ranges.

With Dialogs(wdDialogFormatColumns) 
   Debug.Print . ColumnNo
End With



Styles Collection

You can use the Styles property to return the Styles collection.

Dim objStyle As Style 
For Each objStyle In ActiveDocument.Styles

Next objStyle

If you want to modify styles in a template, use the OpenAsDocument method to open the template as a document
Use Styles(index), where index is a style name, a wdBuiltinStyle constant or index number


Dim oStyle As Style 
ActiveDocument.Styles("Normal") = oStyle;

Dim objStyle As Style 
Set objStyle = ActiveDocument.Styles("Color")

If you are using the style name it must match the spelling and spacing of the style name exactly, but not necessarily its capitalization.


Dim objStyle As Style 
Set objStyle = ActiveDocument.Styles(wdBuiltInStyle.wdStyleNormal)

Dim objStyle As Style 
Set objStyle = ActiveDocument.Styles(1)

The style index number represents the position of the style in the alphabetically sorted list of style names.
Note that Styles(1) is the first style in the alphabetic list.


Description Property


objStyle.Description 


Default Property

In VBA the default property is NameLocal ??

sName = objStyle 
sName = objStyle.NameLocal

Built-in Property



InUse Property

This property does not tell you whether a style is currently being used but rather tells you if the style is available to be used.
Built-in styles that have not been modified (or applied to any text) in this document will have this property set to False.
User defined styles will always have this property set to True.


Public Sub ListStylesCurrentlyAppliedToText() 
Dim objstyle As Style
Dim sstylelist As String
   sstylelist = "Styles in use:" & vbCr

   For Each objstyle In ActiveDocument.Styles
       If objstyle.InUse = True Then
           With ActiveDocument.Content.Find
               .ClearFormatting
               .Text = ""
               .Style = objstyle
               .Execute Format:=True
               If .Found = True Then
                   sstylelist = sstylelist & objstyle.NameLocal & vbCr
               End If
           End With
       End If
   Next objstyle
   Call MsgBox(sstylelist)
End Sub


BaseStyle Property


ActiveDocument.Styles(1).BaseStyle 


Copies all the styles from the attached template to the document

objDocument.UpdateStyles 

Dim objStylesCol As Styles 
   Set objStylesCol = objDocument.Styles


Do not rely on the default members !!!

Dim objStyle As Word.Style 
   objStyle.NameLocal = "Style Name"


It is possible to redefine a style based on changes that are made to a portion of text that has been formatted with that style.

objStyle.AutomaticallyUpdate = True | False 

Every style object of type wdStyleTypeParagraph has a ParagraphFormat object that represents the paragraph form settings for that style



If (objParagraph.Format.Style Like "Heading [0-9]") Then 
End If



© 2020 Better Solutions Limited. All Rights Reserved. © 2020 Better Solutions Limited TopPrevNext