开发者

How to programmatically edit all hyperlinks in a Word document?

Is there a macro, VBA code or VBScript that I can write to edit the urls of all the hyperlinks in开发者_运维百科 my Word document? Either Word 97-2003 or docx format.


Dim doc As Document
Dim link, i
'Loop through all open documents.
For Each doc In Application.Documents
    'Loop through all hyperlinks.
    For i = 1 To doc.Hyperlinks.Count
        'If the hyperlink matches.
        If LCase(doc.Hyperlinks(i).Address) = "http://www.yahoo.com/" Then
            'Change the links address.
            doc.Hyperlinks(i).Address = "http://www.google.com/"
            'Change the links display text if desired.
            doc.Hyperlinks(i).TextToDisplay = "Changed to Google"
        End If
    Next
Next

Here is a link to all the Hyperlink Methods and Properties


This helped me immensely. User had opened Word Docs containing hyperlinks through her mapped drive instead of going in the long way through network. Hundreds of docs will be saved!

I used mid() function:

Sub FixMyHyperlink()

    Dim doc As Document
    Dim link, i

    'Loop through all open documents.
    For Each doc In Application.Documents
        'Loop through all hyperlinks.
        For i = 1 To doc.Hyperlinks.Count
            'If the hyperlink matches.
            If LCase(doc.Hyperlinks(i).Address) Like "*partOfHyperlinkHere*" Then
                'Change the links address. Used wildcards (*) on either side.
                doc.Hyperlinks(i).Address = Mid(doc.Hyperlinks(i).Address, 70,20)        '
                'Change the links display text if desired.
                'doc.Hyperlinks(i).TextToDisplay = "Oatmeal Chocolate Chip Cookies"
            End If
        Next
    Next
End Sub


Thanks to Tester for the solution, used it for a quick replace:

Sub ReplaceLinks()

Dim doc As Document
Dim link, i

'Loop through all open documents.
For Each doc In Application.Documents
    'Loop through all hyperlinks.
    For i = 1 To doc.Hyperlinks.Count

        'Update old bookmarks to https
        doc.Hyperlinks(i).Address = Replace(doc.Hyperlinks(i).Address, "gopher:", "https://")

   Next
Next
End Sub
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜