この記事では、VBAマクロでハイパーリンクをセル指定で設定や取得(別シート:一括:フルパスなど)する方法について解説していきます。
ポイントとしては`Hyperlinks.Add`メソッド、`Range`オブジェクトを使用することです。なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名を少々変わった名称にしております。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
VBAマクロでハイパーリンクをセル指定で設定する方法【Hyperlinks.Add, Range】
それではまず、ハイパーリンクをセル指定で設定する方法について解説していきます。
このプロセスでは、Excel内の別のシートへのリンクを一括でアクティブシートのB2セルから順番に下に追加する方法を紹介します。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub SetHyperlinks()
Dim aaaaawsSource As Worksheet, aaaaawsDest As Worksheet
Dim aaaaarCell As Range
Dim aaaalinkAddress As String
' 全てのシートに対してハイパーリンクを設定
For Each aaaaawsDest In ThisWorkbook.Sheets
If aaaaawsDest.Name <> ThisWorkbook.ActiveSheet.Name Then
' B2から順にリンクを設定
Set aaaaarCell = aaaaawsDest.Range("B2")
aaaalinkAddress = ThisWorkbook.FullName & "#" & aaaaawsDest.Name & "!A1"
' ハイパーリンクの追加
aaaaawsDest.Hyperlinks.Add Anchor:=aaaaarCell, Address:="", SubAddress:=aaaalinkAddress, TextToDisplay:=aaaaawsDest.Name
End If
Next aaaaawsDest
End Sub
コードのAlt+F8を押し、マクロ選択画面で`SetHyperlinks`関数を実行します。
このマクロはアクティブシート以外のすべてのシートに対して、
・B2セル:別シート1のA1セル
・B3セル:別シート3のA1セル
・・・と指定できるものになっています。
VBAマクロでハイパーリンクを一括取得する方法【Hyperlinks, Range, Worksheet】
続いては、ハイパーリンクを一括取得する方法について解説していきます。
ここでは、あるシートの全てのハイパーリンクをフルパスで取得し、別のシートの特定のセルに一覧として表示します。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub GetHyperlinks()
Dim aaaaawsSource As Worksheet, aaaaawsOutput As Worksheet
Dim aaaalink As Hyperlink
Dim aaaaarOutputCell As Range
Set aaaaawsSource = ThisWorkbook.Sheets("Sheet1")
Set aaaaawsOutput = ThisWorkbook.Sheets("betsu")
Set aaaaarOutputCell = aaaaawsOutput.Range("C3")
For Each aaaalink In aaaaawsSource.Hyperlinks
aaaaarOutputCell.Value = aaaalink.Address & " " & aaaalink.SubAddress
Set aaaaarOutputCell = aaaaarOutputCell.Offset(1, 0)
Next aaaalink
End Sub
コードのAlt+F8を押し、マクロ選択画面で`GetHyperlinks`関数を実行します。
このマクロは`Sheet1`に設定された全てのハイパーリンクを取得し、`betsu`シートの`C3`セルから順に記載していくものになっています。
なお、各ハイパーリンクのフルパスが表示する仕様としています!
まとめ VBAマクロでハイパーリンクを取得や設定(別シート:一括:フルパスなど)する方法【Hyperlinks, Cells】
ここでは、VBAマクロでハイパーリンクをセル指定で設定や取得(別シート:一括:フルパスなど)する方法【Hyperlinks, Cells】について確認しました。
マクロをマスターしてさらに快適な生活を送っていきましょう!