Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Setting Style Name in Word MAcro

Status
Not open for further replies.

pgkjb002

Programmer
Mar 8, 2012
2
AU
Hi all,

I'm using...

Selection.Style = ActiveDocument.Styles(wdStyleHeading2)

...to set the style of the current paragraph.

The Style Attributes are being set as you would expect (Arial, 14 Pt, Bold, Italic) but the Style Name is not being set.

Style shows as "Normal + Arial, 14 Pt, Bold, Italic" and I'm unable to pick up this heading line in a subsequent Table of Contents build.

How do I force the Style name to be set (in this case to "Heading 2")

Full Code below

Thanks in Anticipation

Sub FormatPitNRequirements()
Dim fd As FileDialog
Dim vrtSelectedFile As Variant
Set fd = Application.FileDialog(msoFileDialogOpen)

With fd
If .Show = -1 Then
For Each vrtSelectedFile In .SelectedItems
Documents.Open (vrtSelectedFile)
Do
With Selection.Find
.Text = "L?-"
.Replacement.Text = ""
.Forward = True
.MatchCase = False
End With
If Selection.Find.Execute(MatchWildcards:=True) Then
If Selection.Cells(1).RowIndex > 1 Then
Selection.SplitTable
Selection.MoveDown Unit:=wdLine, Count:=1
End If
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.SplitTable
Selection.MoveUp Unit:=wdLine, Count:=1
Selection.Rows.ConvertToText Separator:=wdSeparateByTabs
If InStr(Selection.Text, "L1-") Then
Selection.Style = ActiveDocument.Styles(wdStyleHeading2)
Selection.Text = Replace(Selection.Text, "L1-", "")
End If
If InStr(Selection.Text, "L2-") Then
Selection.Style = ActiveDocument.Styles(wdStyleHeading3)
Selection.Text = Replace(Selection.Text, "L2-", "")
End If
Selection.MoveDown Unit:=wdLine, Count:=1
Else
Exit Do
End If
Loop
Next vrtSelectedFile
End If
End With


End Sub
 
Hi there,

simple:
Code:
 Selection.Style = ActiveDocument.Styles([b]"Heading 2"[/b])

;-)

“Knowledge is power. Information is liberating. Education is the premise of progress, in every society, in every family.” (Kofi Annan)
Oppose SOPA, PIPA, ACTA; measures to curb freedom of information under whatever name whatsoever.
 
Thanks MakeItSo,

Actually, the problem seemed to be the following statement...

Changed:
Selection.Style = ActiveDocument.Styles(wdStyleHeading2)
Selection.Text = Replace(Selection.Text, "L1-", "")

To:
Selection.Text = Replace(Selection.Text, "L1-", "")
Selection.Style = ActiveDocument.Styles(wdStyleHeading2)

And the Style Name is no longer being lost.

Don't understand why the the replace text would kill the Style Name, but at least it's working now!

Regards
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top