View Single Post
  #6   Report Post  
Posted to microsoft.public.word.formatting.longdocs
Jose Durazo
 
Posts: n/a
Default cross-references and hyperlinks

Thanks Doug, this works for everything except page numbers, so I changed the
test for field type to "If aref.Type = wdFieldRef Or aref.Type =
wdFieldPageRef Then". This now works almost perfectly. It also causes a
blue underline on page numbers in my TOC, so I tweaked the code to exclude
any references within the range of the TOC. Here's resulting code that
seems to work well:

Sub FormatCrossReferences()
Dim aref As Field

' TocRangeStart and end will be set to numbers greater
' than -1 if there's a table of contents in the document
' Macro assumes 0 or 1 table of contents
' Macro will not format items within the range of the TOC
Dim TocRangeStart As Integer
TocRangeStart = -1
Dim TocRangeEnd As Integer
TocRangeEnd = -1
Dim TOCCollection As TablesOfContents
Set TOCCollection = ActiveDocument.TablesOfContents
If Not (TOCCollection Is Nothing) Then
Dim TOC As TableOfContents
Set TOC = TOCCollection.Item(1)
TocRangeStart = TOC.Range.Start
TocRangeEnd = TOC.Range.End
End If

For Each aref In ActiveDocument.Fields
If (aref.Type = wdFieldRef Or aref.Type = wdFieldPageRef) _
And (aref.Result.Start TocRangeStart Or TocRangeEnd _
aref.Result.End) Then
With aref.Result.Font
.Color = wdColorBlue
.Underline = wdUnderlineSingle
End With
End If
Next aref
End Sub