ハイパーリンクをまとめて削除するマクロ Excel VBA 3行マクロ~20回

ハイパーリンクをまとめて削除するマクロ

ハイパーリンクを一括で削除

3行マクロ 20回

エクセルのハイパーリンクを一括で削除するマクロ

Excelでは、セルにメールアドレスやホームページのURLを入力すると、ハイパーリンクが自動設定されます。リンクが簡単に設定できて便利です。
しかしこれも編集する時は、別です。いちいちメールソフトやブラウザソフトが立ち上がり、編集の邪魔になります。
そこで、Excel2013で自動的にハイパーリンクを設定しないハイパーリンクの設定と削除を紹介してきました。
しかしハイパーリンクの設定を後から削除しようとすると、セルを右クリックしハイパーリンクの削除を選ぶのですが、1つずつしか削除できません。 (Excel2010以降からは、複数のハイパーリンクを一括削除できるようになりました。範囲を選択して、右クリックからハイパーリンクの削除を選択します。)
今回は、ハイパーリンクをまとめて削除するマクロを作成しましょう。
(サンプルファイルは、こちらから 3行マクロ20回サンプルデータ
Excelバージョン:Excel201620132010

ハイパーリンクが不要な部分だけ選択してまとめて削除するマクロをつくる

予め「カンタン!Excel講座」からリンク付きの文字列をコピーして貼り付けてあります。リンクをクリックするとURLが開きます。
リンク付き文字列
B2セルを選択した状態から、マクロの記録を開始しました。
マクロの記録1
マクロに名前を付けます。マクロの保存先は、個人用マクロブックにします。
ハイパーリンク削除2
右クリックメニューから、ハイパーリンクの削除を選択します。
ハイパーリンクの削除3
リンク付きの文字列からハイパーリンクが削除されました。マクロの記録を終了します。
ハイパーリンク削除4
コードを見てみましょう。任意の選択範囲にたいして、ハイパーリンクを削除するコードの完成です。
マクロのコード
このまま汎用的に使えます。
コードです。このコードでは、選択してから実行します。 選択対象は1個でも複数でもかまいません。

Sub ハイパーリンク削除()
    Selection.Hyperlinks.Delete
    End Sub

ハイパーリンクからアドレスだけを取り出してセルに文字列として表示するマクロをつくる

つづいてURLを隣のセルに取り出してからリンクを削除したいケースです。
マクロのコード
上記では、上の表において、始めにアドレスを取り出しておいて、 下の表では、ハイパーリンクを削除して、タイトルだけを表示しています。
Sub アクティブセルのハイパーリンクからアドレスを取り出す()
    With ActiveCell
    .Offset(0, 1) = .Hyperlinks(1).Address
    End With
End Sub
対象が複数セルのハイパーリンクならば、For Each ~Next を使って対象範囲からアドレスを抽出します。
マクロのコード
Sub 選択範囲のハイパーリンクからアドレスを隣に取り出し()
    Dim URL As Hyperlink
    For Each URL In Selection.Hyperlinks
        URL.Range.Offset(0, 1).Value = URL.Address
     Next URL
End Sub

こちらもおすすめ