View Single Post
  #2   Report Post  
Posted to microsoft.public.word.docmanagement
Stefan Blom[_3_] Stefan Blom[_3_] is offline
external usenet poster
 
Posts: 6,897
Default Find all instances of a certain word and replace with hyperlinkof same word

One possibility is to loop all hyperlink objects in a document and set
the address depending on the display text:

Dim h As Hyperlink
For Each h In ActiveDocument.Hyperlinks
If h.TextToDisplay = "project" Then
h.Address = "http://word.mvps.org"
End If
Next h

--
Stefan Blom
Microsoft Word MVP



On 2012-05-31 13:16 (GMT+1), duffdeal wrote:
Hello

I would like a macro or method to find and replace instance of a word in
a large word document with a hyperlink who's display text is the same as
the original word.

Example: I would search for 'project' and replace all instances with a
hyperlink www.example.com with the display text remaining 'project'.

I have found many macros that are tantalisingly close but not quite what
I need. For example, a macro from another site will change all the
hyperlink addresses in a document and their display text.

I thought I could change all the instances of 'project' to a hyperlink
using inbuilt find and replace, then use that macro to change the
display text. However, the inbuilt find and replace function does not
create hyperlinks, you have to move the cursor to the unlinked text and
press space/enter to activate it. That's not viable in a large
document.

To be really persnickety, it would be amazing if it only changed normal
body text rather than all text, so I could leave headings and headers
unchanged. I imagine this is possible by using the inbuilt find and
replace to replace only normal text, then a macro to add the hyperlinks,
perhaps.

Cheers
Tom