2017-05-23 4 views
1

私は文書に700以上のリンクを持っており、.Findメソッドを使って、ある単純な正規表現でハイパーリンクのアドレスをスキャンしたいと考えています。残念ながら、私が試したすべてのものは、実際のハイパーリンクアドレスではなく、表示されたテキストにFindを限定しています。Word for VBAでは、ハイパーリンクアドレスでFindメソッドを使用するにはどうすればよいですか?

ご協力いただければ幸いです。 これは私が今持っているものを表すコードスニペットです:

Set rng = .Hyperlinks(i).Range 
Set fnd = rng.Find 

(最初の行に設定された範囲は、残念ながら表示されたテキストではなく、ハイパーリンクのアドレスのテキストです。)

はありがとうございます。

+0

このように、ハイパーリンクのコレクションを繰り返して、各ハイパーリンクの 'Address'プロパティで作業する必要があります。このために 'Range.Find'メソッドを使用することはできませんが、アドレステキストに対して正規表現を使用することはできます。 –

答えて

0

あなたは、リンクが表示されるようにFieldCodeを設定することができます。

ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes 

次に、あなたがテキストのために何をすべきかと同じようにリンクを検索することができます。これはちょうど私が記録した例です:

ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes 
CommandBars("Navigation").Visible = False 
Selection.Find.ClearFormatting 
Selection.Find.Replacement.ClearFormatting 
With Selection.Find 
    .Text = "https://me.you" 
    .Replacement.Text = "https://you.me" 
    .Forward = True 
    .Wrap = wdFindContinue 
    .Format = False 
    .MatchCase = False 
    .MatchWholeWord = False 
    .MatchWildcards = False 
    .MatchSoundsLike = False 
    .MatchAllWordForms = False 
End With 
関連する問題