Do Loop ステートメントでワークシートのハイパーリンクを全部削除するマクロ~Excel VBA 3行マクロ

条件が満たされるまで繰り返し、Do Loop ステートメントでハイパーリンクを全部削除するマクロ

条件が満たされるまで繰り返し、Do Loop ステートメントでシートのハイパーリンクを一括削除

3行マクロ 39回

ワークシートのハイパーリンクを全部削除するマクロ

ワークシートのハイパーリンクを一括削除するマクロ
3行マクロ講座 20回で「選択範囲のハイパーリンクを全部削除するマクロ」を紹介しました。 なぜ、ハイパーリンクをまとめて削除するマクロがあると便利なのかといえば、ハイパーリンクの設定を後から削除しようとすると、 1つずつしか削除できないからです。

Excel2010以降
(Excel2010以降からは、複数のハイパーリンクを一括削除できるようになりました。範囲を選択して、右クリックからハイパーリンクの削除を選択します。)

「選択範囲のハイパーリンクを全部削除するマクロ」は、それなりに使えるマクロです。 しかし、範囲が飛び飛びだったり広かったりして、ハイパーリンクの選択が難しい時もあります。
今回は、範囲を選択することなく、ワークシートにあるハイパーリンクをすべて削除してしまうマクロを紹介します。
(サンプルファイルは、こちらから 3行マクロ39回サンプルデータ
Excelバージョン:Excel2016201320102007

ワークシートのハイパーリンクを全部削除するマクロ

Do...Loop ステートメントの例として、ハイパーリンクのテキストは、残してハイパーリンクだけ削除します。

Do...Loop ステートメントで繰り返し処理をする

Do...Loop ステートメントは、条件を満たすまで、繰り返し処理を行うステートメントです。 While と Until のいずれかを使用して condition を指定しますが、 While と Untilの両方を使うことはできません。
考え方
Do Until アクティブシートのハイパーリンクが0になるまで
アクティブシートのハイパーリンクを削除
Loop
コードは、
Sub ハイパーリンクをぜんぶ削除()
    Do Until ActiveSheet.Hyperlinks.Count = 0
        ActiveSheet.Hyperlinks(1).Delete
    Loop
End Sub
マクロを実行するとハイパーリンクが削除されます。
次の1行マクロでもアクティブシートのハイパーリンクを削除することができます。
Sub シートのハイパーリンク消去()
    ActiveSheet.Hyperlinks.Delete
End Sub

選択範囲のハイパーリンクを削除するには

3行マクロ講座 20回で「選択範囲のハイパーリンクを削除する」を紹介しています。 コードは、以下の1行です。
Sub 選択ハイパーリンクを削除()
    Selection.Hyperlinks.Delete
End Sub