前回、「【Outlook VBA】メール本文中の”http”から始まる文字列へハイパーリンクを一括挿入する」に続いて、本文中の共有サーバなどのネットワークパス”\\”やOffice系ドキュメントのパス”file:”から始まる文字列を一発でハイパーリンクにする方法をご紹介します。
完成したマクロは以下の通りです。
もくじ
マクロを設置する下準備をする。
以下を参考にVBAコードを配置する場所を表示させます。
テキスト形式を選択している方はハイパーリンクは表示されませんので、HTML形式かリッチテキスト形式に変更をお願いします。
この設定が終えたら一度Outlookを再起動させてください。
マクロを登録する
「開発」タブ>「Visual Basic」を押します。
「Visual Basic Editor」にて、[Project1] > [Microsoft Outlook Objects] > [ThisOutlookSession] を開きます。
右のコードエリアへ、以下のコードを貼り付けて保存します。
Public Sub パス文字列にハイパーリンク追加()
'ハイパーリンクの条件を定義します。
'「http」を指定。「http」や「https」に該当。
Const myHyperlink1 = "http"
Const myHyperlink2 = "\\"
Const myHyperlink3 = "file:"
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), myHyperlink1) Or InStr(HyperLinkList(i), myHyperlink2) Or InStr(HyperLinkList(i), myHyperlink3) Then
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”以外にも”\\”やOffice系ドキュメントのパス”file:”から始まる文字列を入れ確認してしてみましょう。
次にoutlook本体に戻り「開発」タブの「マクロ」>「パス文字列にハイパーリンク追加」を押下します。
はい!きれいにハイパーリンクが挿入されましたね。日本語交じりのURLもOKです!
会議通知に対しても同じくハイパーリンクを挿入することが可能です!
最後に
いかがでしょうか。業務の中でハイパーリンクを付与する作業は意外と多いものですので、自動化できるとぐグッと楽になるのではないでしょうか。
次回はハイパーリンクを一括削除する方法をご紹介したいと思います。
コメントを残す