
Excel 2013 マクロ講座 53回
以前、ハイパーリンクを解除するマクロは、ハイパーリンクをまとめて削除するマクロで紹介しました。
今回は、ハイパーリンクを解除したいんだけど、設定してあったアドレスは、残しておきたいというケースです。
はじめに、ハイパーリンクからアドレスだけを取り出すマクロを、次にハイパーリンクを解除して隣にアドレスを抽出するマクロの2つを紹介します。
(サンプルファイルは、こちらから マクロ講座53回サンプルデータ)
Sub アクティブシートのハイパーリンク削除()
ActiveSheet.Hyperlinks.Delete
End Sub
で、シート上のハイパーリンクすべてが削除されます。
Sub 選択したハイパーリンク削除()
Selection.Hyperlinks.Delete
End Sub
どちらも、Hyperlinksコレクションに対してDeleteメソッドを実行して、対象範囲のすべてのHyperlinkオブジェクトを一括で解除するマクロです。。
Dim リンク As Hyperlink個々のリンクのアドレスを取り出すためには、For Each ~ Next構文を使いループします。 もうお馴染みですね。
Sub ハイパーリンクを隣のセルに抽出()
Dim リンク As Hyperlink
For Each リンク In Selection.Hyperlinks
実行したい処理
Next リンク
End Sub
実行したい処理は、アドレスを隣に取り出すということですね。リンク.Range.Offset(0, 1).Value = リンク.Addressとできます。



Sub ハイパーリンクを隣のセルに抽出()
Dim リンク As Hyperlink
For Each リンク In Selection.Hyperlinks
リンク.Range.Offset(0, 1).Value = リンク.Address
Next リンク
End Sub
Sub ハイパーリンクを解除して抽出()
Dim リンク As Hyperlink
For Each リンク In Selection.Hyperlinks
リンク.Range.Offset(0, 1).Value = リンク.Address
リンク.Delete
Next リンク
End Sub
