【Outlook VBA】ボタンクリック一発でハイパーリンクを一括追加、またはハイパーリンクを一括削除する

前回説明しました、「【Outlook VBA】メール本文中の”\\”や”file:”から始まる文字列へハイパーリンクを一括挿入する」と「【Outlook VBA】メール本文中のハイパーリンクを一括で削除する」のマクロをOutlookの画面上部の「クイックアクセスツールバー」にマクロボタンを挿入し、ボタンを押せば実行できるようにしたいと思います。

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

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




通常のマクロ実行方法について

マクロを実行するときの通常の操作手順は、リボンメニューの「開発」タブ>「マクロ」から実行したマクロを選択するという3ステップを踏まなければなりません。

通常業務において数多くのメールへ、使いたい機能がいくつもの手順を踏まなければたどり着かないのは少々不便です。

今回ご紹介する「クイックアクセスツールバー」はOutlookの画面にボタンと表示されますので、使いたいときに1発で起動するものです。

3ステップが1ステップになったということで、3倍も速く操作できるということですね。

よく使う機能は「クイックアクセスツールバー」に入れてサクッと使えるようにしましょう!

まずはマクロを登録する

前回の記事をまとめたマクロを登録します。すでに登録済みの方はスキップしてください。
「開発」タブ>「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

Public Sub ハイパーリンク削除()
    
    Dim objWord As Object
    Dim objHyperLinks As Object
    Dim objHyperLink As Object

    
    '本文のオブジェクトを取得
    Set objWord = ActiveInspector.WordEditor
    Set objHyperLinks = objWord.Range.Hyperlinks
    Debug.Print objHyperLinks.Count
    'ハイパーリンク削除
    For i = 1 To objHyperLinks.Count
        For Each objHyperLink In objHyperLinks
            objHyperLink.Delete
        Next
    Next

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

「クイックアクセスツールバー」にマクロ実行ボタンを追加する

次にoutlook本体に戻り、メールを新規作成しそのメールの「ファイル」>「オプション」>「クイック アクセス ツール バー」の順にクリックします。

次にマクロボタンを追加します。
「コマンドの選択」 ボックスの一覧で、「マクロ」をクリックします。

ボタンを割り当てたいマクロを選び、 「追加」をクリックします。
今回は「パス文字列にハイパーリンク追加」と「ハイパーリンク削除」を順に追加します。

マクロの既定のマクロアイコンを別のボタンにしたいと思いますので、「変更」をクリックします。マクロ用のボタン アイコンを選び「OK」をクリックします。

アイコンが変更されました。
「ハイパーリンク削除」も同様の手順で追加、アイコンの変更を行い、「OK」をクリックします。

「クイックアクセスツールバー」にアイコンが表示されたら完成です。

早速実行してみましょう

ハイパーリンクにしたいパスを記載し、「パス文字列にハイパーリンク追加」アイコンをクリックします。

ハイパーリンクが追加されましたね!

次に「ハイパーリンク削除」のアイコンをクリックしてみましょう。

はい、ハイパーリンクが削除されましたね!

さいごに

いかがでしょうか。
「クイックアクセスツールバー」を利用すると手間が省けることがお分かりいただけたと思います。
マクロ以外の機能も追加可能ですので、利用状況に合わせてカスタマイズすると良いかもしれませんね。

コメントを残す

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