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

本文中のハイパーリンクを削除する場合は一つづつ右クリックして削除をしなければならず、特に複数あった場合は少々面倒ですよね。
今回は、前回の「【Outlook VBA】メール本文中の”\\”や”file:”から始まる文字列へハイパーリンクを一括挿入する」に続いて、本文中のハイパーリンクを一括で削除できる方法をご紹介します。

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




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

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

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

Outlook VBAをはじめよう!

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

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

マクロを登録する

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

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

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

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

    '本文のオブジェクトを取得
    Set objWord = ActiveInspector.WordEditor
    Set objHyperLinks = objWord.Range.Hyperlinks

    'ハイパーリンク削除
    For Each objHyperLink In objHyperLinks
        objHyperLink.Delete
    Next

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

試しにハイパーリンク付き文字列をメール本文中に挿入

メールを新規作成しハイパーリンクを入れた文字列を用意しましょう。

次にoutlook本体に戻り「開発」タブの「マクロ」>「ハイパーリンク削除」を押下します。

できたと思いきや、一部の文字列でハイパーリンクが残っていますね…

一部のハイパーリンクが残ってしまう原因についてはおそらくハイパーリンクがネストしている可能性が考えられますが、詳細は不明です。

なお、ハイパーリンクの数分繰り返して実行するとなんとかすべて消せることができましたので、ハイパーリンク分繰り返すように変更をしました。

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 VBA】メール本文中の”\”や”file:”から始まる文字列へハイパーリンクを一括挿入する

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

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

コメントを残す

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