EXCEL VBA ハイパーリンクの追加・設定 別のシートへジャンプ・Webページを表示(Hyperlinkオブジェクト)
EXCEL VBA ハイパーリンクの追加・設定 別のシートへジャンプ・Webページを表示(Hyperlink.Addメゾット)
今回は、Hyperlinks.Addメゾットの使い方を説明いたします。Hyperlinks.Addメゾットは、パイパーリンクの追加・設定を行う事が出来ます。ハイパーリンクを設定する事で、指定したセルにジャンプしたり、別のシートにジャンプ(シート切替)したりする事が出来ます。ハイパーリンク設定を利用する事で、EXCELブックに目次を作成し、各シートへジャンプする仕組みを作成する事もできます。それでは、サンプルプログラムを交えて順番に説明いたします。
【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メゾットを利用したサンプルプログラムです。指定したセルからセルへジャンプします。
【プログラムの説明】
今回のプログラムは、下記のプログラム(①・②)を入力する必要が有ります。
①標準モジュール
②イベントプロシージャ
①標準モジュール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
' '******** 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 ' |
②イベントプロシージャ
(画面クリックして拡大)
同じブック内の別シートにジャンプする(ハイパーリンク)
下記のサンプルプログラムは、Hyperlinks.Addメゾットを利用したサンプルプログラムです。同じブック内の別シートへジャンプします。
【プログラムの説明】
①シート名「近畿地方」以外のシート名に対してワイパーリンクの設定を行います。
②シート名「近畿地方」に、各シート名のパイパーリンクが設定されます。
③シート名「近畿地方」に「リンク先シート」一覧が作成されるので、リンク先の都道府県をクリックしますと選択した都道府県のシートにジャンプします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
' '******** 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 ' |
(画面クリックして拡大)
シート内のハイパーリンク設定を削除します。(シート内のハイパーリンクを設定一括削除)
【サンプルプログラムパターン①】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
' '******** AKIRA55.COM ******* https://akira55.com/hyperlink/ ' Sub Hyperlinks05() 'シート全体のハイパーリンクを削除します。 With ActiveSheet.Cells '指定したシートのセル全体を対象とします。 .ClearHyperlinks 'ハイパーリンク解除します。 .Font.Underline = False '文字のアンダーライン解除します。 .Font.ColorIndex = xlAutomatic '文字色を自動設定します。 End With End Sub ’ |
【サンプルプログラムパターン②】
※パターン②の場合は、ハイパーリンクを削除しますと、書式設定部分も削除されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
' '******** AKIRA55.COM ******* https://akira55.com/hyperlink/ ' Sub Hyperlinks04() 'シート全体のハイパーリンクを削除します。 Dim CellsHL As Hyperlink For Each CellsHL In ActiveSheet.Hyperlinks 'アクティブシートのハイパーリンク部分を繰り返します。 CellsHL.Delete 'ハイパーリンク解除します。 Next End Sub ' |
(画面クリックして拡大)
Webページを表示するパイパーリンクの設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
' '******** 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 ' |
(画面クリックして拡大)
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。