エクセルのVBAでハイパーリンクを設定する方法について説明しています。
ハイパーリンクの設定とは
ハイパーリンクとは、セルや図形をクリックしたときに指定したWebページやブック内のセルへ移動することができる機能です。
ハイパーリンクが設定されているとセル内の文字が青字で下線が引かれていて、クリックするとリンク先のURLがブラウザで開いたり、選択しているセル位置がジャンプしたりします。
手動で設定するときはセルの上で右クリックしたときのメニューで「リンク」を選択します。
「リンク」をクリックすると「ハイパーリンクの挿入」のウィンドウが表示されてここでWebページのURLを入力したり、リンク先の情報や表示文字列などが設定できます。
今回は実務でわりとよく使用するWebページのリンクの設定と「このドキュメント内」というブック内の別のシートへリンクを行う方法を紹介します。
マクロでWebページへのハイパーリンクを設定する
VBAでハイパーリンクを設定する場合は「Hyperlinks.Add メソッド」を使用します。
構文は↓のように記述します。
AnchorとAddressは必須で、後ろ3つはオプションとして任意で指定が可能です。
名前 | 必須/省略可 | データ型 | 説明 |
Anchor | 必須 | Object | ハイパーリンクのアンカーを指定。 Range オブジェクトまたは Shape オブジェクトを指定。 |
Address | 必須 | String | ハイパーリンクのアドレスを指定。※URLへのリンク時に使用 |
SubAddress | 省略可 | Variant | ハイパーリンクのアドレスを指定。※ブック内のリンク時に使用 |
ScreenTip | 省略可 | Variant | マウス ポインターを合わせた時に表示されるヒントを指定。 |
TextToDisplay | 省略可 | Variant | 表示されるテキストを指定。 |
VBAでハイパーリンクの設定をしたい場合は、1カ所だけではなくて連続する表データなどに一括で設定したいケースが多いと思います。
サンプルマクロの例として、このWebページの記事タイトルとURLがある表を使ってタイトルをクリックしたら記事のWebページを開くようにハイパーリンクを設定していきたいと思います。
B列の3行目~7行目までのタイトルの文字にリンクを設定していくのでForループで行の繰り返しを使用しています。リンク先はC列のURLを使用します。
AnchorはB列の繰り返しの行を指定して、AddressはC列の繰り返しの行を指定しています。
Sub sample1()
Dim r As Integer
Dim LastRow As Integer
Dim HLink As Hyperlink
'最終行を取得
LastRow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
'3行目から最終行まで繰り返し
For r = 3 To LastRow
'B列にハイパーリンクの設定(C列のURLをセット)
Set HLink = ActiveSheet.Hyperlinks.Add(Anchor:=Range("B" & r), Address:=Range("C" & r))
Next r
End Sub
▽マクロ実行後
B列のタイトルにリンクが設定されて、クリックすると設定したブラウザでURLが開くようになりました。
マクロでブック内他のシートにハイパーリンクを設定する
次はブック内の別のシートにジャンプするリンクを設定していきます。
「見出し」というシートに4月~9月までの行があります。
B2セルの「4月」という文字をクリックしたら「4月」シートを表示、B3セルの「5月」という文字をクリックしたら「5月」シートへと各月のシートへジャンプするリンクをマクロで設定していきたいと思います。
AnchorはB列に設定します。Adressは空欄にしておきます。SubAdressでB列のシート名のA1セルを指定します。
Sub sample2()
Dim r As Integer
Dim LastRow As Integer
Dim HLink As Hyperlink
'最終行を取得
LastRow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
'2行目から最終行まで繰り返し
For r = 2 To LastRow
'B列にハイパーリンクの設定(B列のシート名のA1セル)
Set HLink = ActiveSheet.Hyperlinks.Add(Anchor:=Range("B" & r), Address:="", SubAddress:="'" & Range("B" & r) & "'!A1")
Next r
End Sub
▽マクロ実行後
4月~9月までのセルにハイパーリンクが設定されました。
「4月」のセルをクリックすると「4月」シートへジャンプしました。
※コードのコピー利用について
・コードのコピーは自由におこなっていただけます。
・気を付けて作成はしていますがコードには誤りがある可能性があります。
・自身の環境で動作確認をしていますが、すべての方の環境で同様に動くことは保証できません。
・データの破損等の責任は負いかねますのでご自身の責任のもとお使いください。