条件が満たされるまで繰り返し、Do Loop ステートメントでハイパーリンクを全部削除するマクロ
3行マクロ 39回
ワークシートのハイパーリンクを全部削除するマクロ
ワークシートのハイパーリンクを一括削除するマクロ
3行マクロ講座 20回で「選択範囲のハイパーリンクを全部削除するマクロ」を紹介しました。
なぜ、ハイパーリンクをまとめて削除するマクロがあると便利なのかといえば、ハイパーリンクの設定を後から削除しようとすると、
1つずつしか削除できないからです。
(Excel2010以降からは、複数のハイパーリンクを一括削除できるようになりました。範囲を選択して、右クリックからハイパーリンクの削除を選択します。)
「選択範囲のハイパーリンクを全部削除するマクロ」は、それなりに使えるマクロです。
しかし、範囲が飛び飛びだったり広かったりして、ハイパーリンクの選択が難しい時もあります。
今回は、範囲を選択することなく、ワークシートにあるハイパーリンクをすべて削除してしまうマクロを紹介します。
(サンプルファイルは、こちらから 3行マクロ39回サンプルデータ)
Excelバージョン:
ワークシートのハイパーリンクを全部削除するマクロ
Do...Loop ステートメントの例として、ハイパーリンクのテキストは、残してハイパーリンクだけ削除します。
Do...Loop ステートメントで繰り返し処理をする
Do...Loop ステートメントは、条件を満たすまで、繰り返し処理を行うステートメントです。
While と Until のいずれかを使用して condition を指定しますが、 While と Untilの両方を使うことはできません。
考え方
Do Until アクティブシートのハイパーリンクが0になるまで
アクティブシートのハイパーリンクを削除
Loop
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