Looking for the Word vba code to find "{ SEQ Table \* ARABIC }" and replace with "{ STYLEREF 1\s } - { SEQ Table \* ARABIC }"
Not sure if this is possible.
Thanks
Printable View
Looking for the Word vba code to find "{ SEQ Table \* ARABIC }" and replace with "{ STYLEREF 1\s } - { SEQ Table \* ARABIC }"
Not sure if this is possible.
Thanks
I have a procedure where I loop through Sections, many of which have a TOC fields using bookmarks. I identify the TOC Field code, and then isolate the bookmark name for further use. Maybe this will give you an idea how to go about it.
Code:ActiveWindow.View.ShowFieldCodes = True 'Show the Field Code so you can work with the contents
For Each myFld In myRange.Fields 'Loop through each field in the Active Document
If myFld.Code Like "* TOC \f \b *" Then 'It's a TOC Field. Field Code Format = { TOC \f \b hazcom \z }
myFld.Select
'Isolate the Field's identifier/name which matches the bookmark's name. Field Code Format = { TOC \f \b hazcom \z }
y = 0
x = InStr(1, Selection, "\b ")
x = x + 3
Do Until fldNm Like "* \z*"
fldNm = Mid(Selection, x, y)
y = y + 1
If y >= 100 Then ‘Protects against runaway loops
Stop
End If
Loop
fldNm = Mid(Selection, x, y - 4) 'This should be the Field's identifier/name that matches the bookmark's name
'Use the Start and End Bookmarks (placeholders without text at the start/end of the chapter) to make a new bookmark that contains
'the entire text of the chapter which is necessary for the TOC to work (it references all TC fields in the bookmark)
ActiveDocument.Bookmarks.Add Name:=fldNm, Range:=Selection.Sections(1).Range 'Bookmark contains all contents of the Chapter/Section
myFld.Update 'Update the TOC and then apply formatting to make sure it looks proper
Selection.Font.Bold = False
Selection.Font.Underline = wdUnderlineNone
Selection.Font.Name = "Times New Roman"
Selection.Font.Size = 12
Selection.ParagraphFormat.SpaceAfter = 0
Exit For 'Exit loop and go on to the next section
End If
Next
Do something like this to create a field:
Code:strFldTxt = "TC """ & ChptrNm & """ \b " & TOC_Chptr & " \l 1"
oRange.Fields.Add Range:=oRange, Type:=wdFieldEmpty, Text:=strFldTxt, PreserveFormatting:=False