Excelを使った業務効率化の一環として、「セルにハイパーリンクを設定する処理」を自動化したいとお考えの方も多いのではないでしょうか。
本記事では、VBAを用いてセルに外部サイトへのリンクや、シート内の別セルへのリンクを挿入する方法について、具体的なコードとともに丁寧にご紹介いたします。
目次
想定する用途と目的
- Excelの特定セルにWebページのURLを挿入したい。
- クリックで別のシートにジャンプするリンクを自動で作成したい。
- 手動操作ではなく、VBAでまとめて設定したい。
VBAコードの例
以下のサンプルコードでは、セルB3に外部リンク(Webサイト)を、セルB4に別シートのセルへのリンクを挿入しています。
Sub InsertHyperlinks()
With ActiveSheet.Hyperlinks
' 外部リンク(Webページ)をセルB3に挿入
.Add _
Anchor:=Range("B3"), _
Address:="https://morinokabu.com", _
TextToDisplay:="森の株サイト(外部リンク)"
' シート内リンクをセルB4に挿入(Sheet2のC5へジャンプ)
.Add _
Anchor:=Range("B4"), _
Address:="", _
SubAddress:="Sheet2!C5", _
TextToDisplay:="Sheet2のセルC5へ移動"
End With
End Sub
コードの解説
.Add
メソッドについて
Hyperlinks.Add
メソッドでは、以下の3つの主要な引数を指定します。
引数名 | 説明 |
---|---|
Anchor | ハイパーリンクを挿入するセルの位置(Rangeオブジェクト) |
Address | 外部リンクのURL。空にするとシート内リンクになります |
SubAddress | シート内リンク先のセル。例:"Sheet2!C5" |
TextToDisplay | セルに表示される文字列 |
外部リンクとシート内リンクの使い分け
- Webサイトへのリンクには、
Address
にURLを設定し、SubAddress
は省略します。 - シート内リンクでは、
Address
を空にし、SubAddress
にジャンプ先セルの参照を指定します。
よくある応用例
- シートの目次を作成し、各項目から該当ページへジャンプする。
- 各商品データから詳細ページ(Webサイト)に飛ぶリンクを挿入する。
- ファイル内の集計シートから個別入力シートへのリンクを一括設定する。
まとめ
VBAを活用することで、Excel内の複数セルに対して簡単にハイパーリンクを自動挿入できます。
外部のWebページと社内のシート内移動の両方に対応できるため、報告書やマニュアル作成、業務システムとの連携など、さまざまな場面で有効です。
本記事でご紹介したコードを応用すれば、手作業によるリンク作成の手間を削減し、ミスのない正確なリンク設定が実現できます。
ぜひご自身の業務に合わせてカスタマイズしてご活用ください。