web-dev-qa-db-ja.com

すべてのプレーンテキストリンクをハイパーリンクに変換する

メディア報道のプレーンテキストリンクを含むかなり大きなWordファイル(+1,100ページ)があります。たとえば、Word文書には次のものが含まれています。

ニュースリーダー(AP)彼女の最初のシフトで死亡したバージニア州の警察官は休息しました http://www.newsleader.com/story/news/nation-now/2016/03/01/va-police-officer-who-died-her-first-shift-laid-rest/81183272 / 03.01.16

Livingston Daily最初のシフトで死亡したVa。警察官は休息しました http://www.livingstondaily.com/story/news/nation-now/2016/03/01/va-police-officer-who-died-her-first-shift-laid-rest/81183272 / 03.01.16

(Word文書では、これらのリンクはハイパーリンクではなく、単なるテキストです!)

現在、データを取得してWordにマージする方法では、リンクはハイパーリンクではなくプレーンテキストとしてフォーマットされます。

VBAを使用して、これらすべてのプレーンテキストリンクをクリック可能なハイパーリンクに変換し、リンクテキストを保持したいと思います(たとえば、リンクのアンカーテキストが残っているハイパーリンク)。

特定の文字列を検索して特定のリンクに置き換えるコードの例を見つけました。次に例を示します。

Sub FindAndHyperlink()
    'define the style
    Dim strStyle As String
    strStyle = "Normal"
    'set the search range
    Dim rngSearch As Range
    Set rngSearch = ActiveDocument.Range
    'set the search string
    Dim strSearch As String
    strSearch = "tuesday"
    'set the target address for the hyperlink
    Dim strAddress As String
    strAddress = "http:\\google.com"

    With rngSearch.Find
        Do While .Execute(findText:=strSearch, MatchWholeWord:=True, Forward:=True) = True
            With rngSearch 'we will work with what is found as it will be the selection
                ActiveDocument.Hyperlinks.Add Anchor:=rngSearch, Address:=strAddress
                .Style = ActiveDocument.Styles(strStyle) 'throw the style on it after the link
            End With
            rngSearch.Collapse Direction:=wdCollapseEnd
            'keep it moving
        Loop
    End With
End Sub

しかし、検索/選択/置換機能を動的に変更する方法がわかりません。

私が欲しいもの:

  1. 「http」を検索
  2. ハイパーリンク全体を選択
  3. アンカーテキストを変更せずに、ハイパーリンクにします
  4. プレーンテキストのハイパーリンクのすべてのインスタンスに対して繰り返します

助言がありますか?

4

これを試して:

Sub Hyperlinker()

    Dim Rng As Range

    Set Rng = ActiveDocument.Range
    With Rng.Find
        Do While .Execute(findText:="http:", Forward:=False) = True
            Rng.MoveEndUntil (" ")
            ActiveDocument.Hyperlinks.Add _
                Anchor:=Rng, _
                Address:=Rng.Text, _
                SubAddress:="", _
                ScreenTip:="", _
                TextToDisplay:=Rng.Text
            Rng.Collapse wdCollapseStart
        Loop
    End With

End Sub

それらすべての置き換えが完了したら、リンクが機能し始めるように、Word文書を保存して再度開く必要がある場合があります。

4