【Outlook VBA】メール本文中の”http”から始まる文字列へハイパーリンクを一括挿入する

前回、メールの署名にハイパーリンクを追加する方法を紹介しましたが、その条件を変更すれば本文中のhttpから始まる文字列を一発でハイパーリンクにすることが可能ですので、ご紹介します。

【Outlook VBA】メールの署名にハイパーリンクを追加する方法




ハイパーリンクの挿入は意外と面倒

ハイパーリンクを挿入するときにhttpの文字列最後尾にカーソルを合わせEnterボタンを押せば自動で入りますが、最近のURLは長かったり、日本語交じりで途中で切れたりしませんか。
↓こんな感じです。。

“< >”でくくればだいたいは認識されますが、それも数が多い場合は少々面倒です。

そこで今回はハイパーリンクにしたい文字列が複数あったときに一発で追加できる機能をご紹介したいと思います。

完成したマクロは以下の通りです。


マクロを設置する下準備をする。

以下を参考にVBAコードを配置する場所を表示させます。

Outlook VBAをはじめよう!

テキスト形式を選択している方はハイパーリンクは表示されませんので、HTML形式かリッチテキスト形式に変更をお願いします。

この設定が終えたら一度Outlookを再起動させてください。

マクロを登録する

「開発」タブ>「Visual Basic」を押します。

「Visual Basic Editor」にて、[Project1] > [Microsoft Outlook Objects] > [ThisOutlookSession] を開きます。

右のコードエリアへ、以下のコードを貼り付けて保存します。

Public Sub httpから始まる文字列にハイパーリンク追加()
    
    'ハイパーリンクの条件を定義します。
    '「http」を指定。「http」や「https」に該当。
    Const myHyperlink = "http"
    
    Dim HyperLinkList As Variant
    Dim objWord As Object
    Dim objSearchWord As Object
    
    '本文のオブジェクトを取得
    Set objWord = ActiveInspector.WordEditor
    Set objSearchWord = objWord.Range
    
    HyperLinkList = Split(objSearchWord, vbCr)
   
    
    'myHyperlinkのワードを探し一致していればハイパーリンクを挿入
    
    For i = 0 To UBound(HyperLinkList)
        If InStr(HyperLinkList(i), myHyperlink) Then
         Debug.Print HyperLinkList(i)
            While objSearchWord.Find.Execute(FindText:=HyperLinkList(i), MatchWholeWord:=False, Forward:=True) = True
                  objWord.Hyperlinks.Add Anchor:=objSearchWord, Address:=HyperLinkList(i)
                  objSearchWord.Collapse Direction:=wdCollapseEnd
            Wend
            
        End If
    Next

    'オブジェクトの開放
    Set objWord = Nothing
    Set objSearchWord = Nothing
    
End Sub



試しにメールを新規作成しhttpから始まる文字列を入れる

メールを新規作成しhttpから始まる文字列を入れ確認してしてみましょう。

次にoutlook本体に戻り「開発」タブの「マクロ」>「httpから始まる文字列にハイパーリンク追加」を押下します。

はい!きれいにハイパーリンクが挿入されましたね。日本語交じりのURLもOKです!



最後に

いかがでしょうか。業務の中でハイパーリンクを付与する作業は意外と多いものですので、自動化できるとぐグッと楽になるのではないでしょうか。

また、http以外にもフォルダのパスやoffice製品特融のパスなどパターンを追加することも可能ですので次回以降でまた取り上げていきたいと思います!

【Outlook VBA】メール本文中の”\”や”file:”から始まる文字列へハイパーリンクを一括挿入する

【Outlook VBA】メール本文中のハイパーリンクを一括で削除する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です