ハイパーリンクをまとめて削除するマクロ
3行マクロ 20回
エクセルのハイパーリンクを一括で削除するマクロ
Excelでは、セルにメールアドレスやホームページのURLを入力すると、ハイパーリンクが自動設定されます。リンクが簡単に設定できて便利です。
しかしこれも編集する時は、別です。いちいちメールソフトやブラウザソフトが立ち上がり、編集の邪魔になります。
そこで、Excel2013で自動的にハイパーリンクを設定しないや
ハイパーリンクの設定と削除を紹介してきました。
しかしハイパーリンクの設定を後から削除しようとすると、セルを右クリックしハイパーリンクの削除を選ぶのですが、1つずつしか削除できません。
(Excel2010以降からは、複数のハイパーリンクを一括削除できるようになりました。範囲を選択して、右クリックからハイパーリンクの削除を選択します。)
今回は、ハイパーリンクをまとめて削除するマクロを作成しましょう。
(サンプルファイルは、こちらから 3行マクロ20回サンプルデータ)
Excelバージョン:
ハイパーリンクが不要な部分だけ選択してまとめて削除するマクロをつくる
予め「カンタン!Excel講座」からリンク付きの文字列をコピーして貼り付けてあります。リンクをクリックするとURLが開きます。
B2セルを選択した状態から、マクロの記録を開始しました。
マクロに名前を付けます。マクロの保存先は、個人用マクロブックにします。
右クリックメニューから、ハイパーリンクの削除を選択します。
リンク付きの文字列からハイパーリンクが削除されました。マクロの記録を終了します。
コードを見てみましょう。任意の選択範囲にたいして、ハイパーリンクを削除するコードの完成です。
このまま汎用的に使えます。
コードです。このコードでは、選択してから実行します。 選択対象は1個でも複数でもかまいません。
コードです。このコードでは、選択してから実行します。 選択対象は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