Excelのシートに大量のハイパーリンクが含まれていると、削除作業に手間がかかってしまうことがあります。
本記事では、VBAを使ってハイパーリンクを一括で削除する方法について、シート全体と特定セル範囲のケースに分けてご紹介いたします。
目次
想定する用途と目的
- シートに貼り付けた外部データから余計なリンクを取り除きたい。
- リンクだけを消して、セルの内容や書式は保持したい。
- 一部の範囲だけリンクを消したいが、他のセルはそのままにしたい。
シート全体のハイパーリンクを削除する方法
以下のコードでは、アクティブシート上に存在するすべてのハイパーリンクを一括で削除します。
Sub DeleteAllHyperlinksInSheet()
ActiveSheet.Hyperlinks.Delete
End Sub
解説
ActiveSheet.Hyperlinks.Delete
を使うと、表示されているテキストはそのままに、リンク情報だけを削除します。- セルの値や背景色、フォントなどは保持されます。
特定範囲のハイパーリンクを削除する方法
範囲1:B2~B4のリンクを削除(Hyperlinksコレクション使用)
Sub DeleteHyperlinksInRange1()
Dim targetRange As Range
Set targetRange = ActiveSheet.Range("B2:B4")
targetRange.Hyperlinks.Delete
End Sub
範囲2:B5~B6のリンクを削除(ClearHyperlinksメソッド使用)
Sub DeleteHyperlinksInRange2()
Dim clearRange As Range
Set clearRange = ActiveSheet.Range("B5:B6")
clearRange.ClearHyperlinks
End Sub
違いの比較
メソッド | 特徴 |
---|---|
.Hyperlinks.Delete | セル内のテキストはそのまま。書式も維持。 |
.ClearHyperlinks | セル内容もクリアされることがある(バージョン依存)。慎重に使用する必要あり。 |
まとめ
Excel VBAを使用すれば、シート全体または一部のセル範囲に対して、ハイパーリンクを一括で削除することが可能です。
リンク付きデータの整形や、コピー元の不要なリンク除去において、非常に役立つ機能です。
特に、次のような状況では本記事の方法が有効です。
- Webからコピーしたデータに大量のリンクが含まれている。
- ファイル内で一部のリンクのみ除去したい。
- 作業報告書や納品物からリンクを取り除きたい。
目的に応じて .Delete
と .ClearHyperlinks
を使い分け、効率的なデータ整形を実現しましょう。