EXCEL VBA ハイパーリンクの追加・設定 別のシートへジャンプ・Webページを表示(Hyperlink.Addメゾット)
●はじめに
今回は、Hyperlinks.Addメゾットの使い方を説明いたします。Hyperlinks.Addメゾットは、パイパーリンクの追加・設定を行う事が出来ます。ハイパーリンクを設定する事で、指定したセルにジャンプしたり、別のシートにジャンプ(シート切替)したりする事が出来ます。ハイパーリンク設定を利用する事で、EXCELブックに目次を作成し、各シートへジャンプする仕組みを作成する事もできます。それでは、サンプルプログラムを交えて順番に説明いたします。
●書式の説明 (Hyperlinks.Addメゾット)
【Hyperlinks.Addメゾットの使い方】
● Hyperlinks.Add(Auchor,Address,SubAddress,ScreenTip,TextToDisplay)
| 引数 | 内容(説明) |
|---|
| Anchor | ハイパーリンクのアンカーを指定します。 |
| Address | ハイパーリンクのアドレスを指定します。 |
| SubAddress | ハイパーリンクのサブアドレスを指定します。 |
| ScreenTip | 設定したハイパーリンク上にマウスポインターを合わせた時に表示するヒントを設定します。 |
| TextToDisplay | ハイパーリンクに表示される文字列(テキスト)を指定します。 |
『使用例』
ActiveSheet.Hyperlinks.Add Anchor:=Range(“B2″), Address:=”https://akira55.com”, TextToDisplay:=”LINK”
【使用例の説明】
①ハイパーリンクを設定先を指定します。セル(B2)
②ハイパーリンク先のアドレスを指定します。今回は、URLページ(https://akira.com)
③セル(B2)に表示させる文字列を「LINK」に指定します。
※上記の設定で、セル(B2)のセルにURLページアドレスのリンク先を設定しました。
同じブック・シート内のセルにジャンプする(ハイパーリンク)
●プログラム説明 サンプル① (Hyperlinks.Addメゾット)
下記のサンプルプログラムは、Hyperlinks.Addメゾットを利用したサンプルプログラムです。指定したセルからセルへジャンプします。
【プログラムの説明】
今回のプログラムは、下記のプログラム(①・②)を入力する必要が有ります。
①標準モジュール
②イベントプロシージャ
①標準モジュール
'
'******** AKIRA55.COM ******* https://akira55.com/hyperlink/
'
Sub Hyperlinks01() '
'ハイパーリンク設定(京都府)
ActiveSheet.Hyperlinks.Add Anchor:=Range("G2"), Address:="", SubAddress:="A2", TextToDisplay:="京都府"
'ハイパーリンク設定(滋賀県)
ActiveSheet.Hyperlinks.Add Anchor:=Range("G3"), Address:="", SubAddress:="A20", TextToDisplay:="滋賀県"
'ハイパーリンク設定(大阪府)
ActiveSheet.Hyperlinks.Add Anchor:=Range("G4"), Address:="", SubAddress:="A31", TextToDisplay:="大阪府"
'ハイパーリンク設定(奈良県)
ActiveSheet.Hyperlinks.Add Anchor:=Range("G5"), Address:="", SubAddress:="A42", TextToDisplay:="奈良県"
'ハイパーリンク設定(兵庫県)
ActiveSheet.Hyperlinks.Add Anchor:=Range("G6"), Address:="", SubAddress:="A65", TextToDisplay:="兵庫県"
'ハイパーリンク設定(和歌山件)
ActiveSheet.Hyperlinks.Add Anchor:=Range("G7"), Address:="", SubAddress:="A84", TextToDisplay:="和歌山県"
End Sub
'
②イベントプロシージャ
●実行前~実行後 ※プログラム実行後、リンク先のG列に都道府県のリンク先一覧が作成されます。都道府県名(兵庫県)をクリックしますと、セルA65にジャンプされました。
(画面クリックして拡大)
同じブック内の別シートにジャンプする(ハイパーリンク)
●プログラム説明 サンプル② (Hyperlinks.Addメゾット)
下記のサンプルプログラムは、Hyperlinks.Addメゾットを利用したサンプルプログラムです。同じブック内の別シートへジャンプします。
【プログラムの説明】
①シート名「近畿地方」以外のシート名に対してワイパーリンクの設定を行います。
②シート名「近畿地方」に、各シート名のパイパーリンクが設定されます。
③シート名「近畿地方」に「リンク先シート」一覧が作成されるので、リンク先の都道府県をクリックしますと選択した都道府県のシートにジャンプします。
'
'******** AKIRA55.COM ******* https://akira55.com/hyperlink/
'
Sub Hyperlinks02() '同じブック内の別シートにジャンプする(ハイパーリンク)
Dim ws, ws01 As Worksheet
Dim ws_Name As String
Dim I, L As Long
Set ws01 = Worksheets("近畿地方")
L = 2 '2行目よりワークシート「近畿地方」にハイパーリンク設定を行う
For Each ws In Worksheets 'ワークシート全て繰り返します。
If ws.Name <> ws01.Name Then 'ワークシート近畿地方以外のワークシート名に対してハイパーリンク先の設定を行います。
ws01.Hyperlinks.Add Anchor:=ws01.Cells(L, "B"), Address:="", SubAddress:=ws.Name & "!A2", TextToDisplay:=ws.Name
'ワークシート毎に、パイパーリンク先を指定します。
L = L + 1 'ハイパーリンク設定後、一行加算する。
End If
Next ws
End Sub
'
●実行前~実行後 ※プログラム実行後、シート「近畿地方」のB列のリンク先シートに、各都道府県ハイパーリンクを設定されました。和歌山県をクリックしたら和歌山県のシートが表示されました。
(画面クリックして拡大)
シート内のハイパーリンク設定を削除します。(シート内のハイパーリンクを設定一括削除)
●プログラム説明 サンプル③
下記のサンプルプログラムは、シート全体に設定したパイパーリンクを一括削除するサンプルプログラムです。
【サンプルプログラムパターン①】
'
'******** AKIRA55.COM ******* https://akira55.com/hyperlink/
'
Sub Hyperlinks05() 'シート全体のハイパーリンクを削除します。
With ActiveSheet.Cells '指定したシートのセル全体を対象とします。
.ClearHyperlinks 'ハイパーリンク解除します。
.Font.Underline = False '文字のアンダーライン解除します。
.Font.ColorIndex = xlAutomatic '文字色を自動設定します。
End With
End Sub
’
【サンプルプログラムパターン②】
※パターン②の場合は、ハイパーリンクを削除しますと、書式設定部分も削除されます。
'
'******** AKIRA55.COM ******* https://akira55.com/hyperlink/
'
Sub Hyperlinks04() 'シート全体のハイパーリンクを削除します。
Dim CellsHL As Hyperlink
For Each CellsHL In ActiveSheet.Hyperlinks 'アクティブシートのハイパーリンク部分を繰り返します。
CellsHL.Delete 'ハイパーリンク解除します。
Next
End Sub
'
●実行前~実行後 ※プログラム実行後(パターン①)シート全体に設定されたハイパーリンクが削除されました。下記のプログラムは、パターン①の結果を表現しています。
(画面クリックして拡大)
Webページを表示するパイパーリンクの設定
●プログラム説明 サンプル④
下記のサンプルプログラムは、指定したセルにWebページを表示するハイパーリンクを設定するサンプルプログラムです。
【プログラム実行条件】
●ワークシートを【URL】に設定する。
'
'******** AKIRA55.COM ******* https://akira55.com/hyperlink/
'
Sub Hyperlinks06() 'Webページを表示するハイパーリンクを設定する。
Dim ws01 As Worksheet
Dim I, lRow As Long
Dim H_Title, H_url As String
Set ws01 = Worksheets("URL") 'シート名を指定します。
lRow = ws01.Cells(Rows.Count, "B").End(xlUp).Row 'シート名「URL」の最終行を取得します。
For I = 2 To lRow 'シート名「URL」の最終行までループします。
H_Title = ws01.Cells(I, "B") 'B列のタイトル名を取得します。
H_url = ws01.Cells(I, "C") 'C列のURLを取得します。
ws01.Hyperlinks.Add anchor:=ws01.Cells(I, "D"), Address:="", SubAddress:=H_url, TextToDisplay:=H_Title
'D列にハイパーリンクの設定を行います。(インターネットサイト)
Next I
End Sub
'
●実行前~実行後 ※プログラム実行後、B列のタイトル名とC列のURLで、D列にハイパーリンク設定がされまました。
(画面クリックして拡大)
最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。