ハイパーリンク (Hyperlink) とは、テキストや画像などをクリックすることで他のドキュメントやWebページ、あるいは同じドキュメント内の他の部分にジャンプすることができるリンクのことです。
ハイパーリンクを扱う方法について説明します。
コレクションとメソッド | 内容 |
---|---|
Hyperlinks.Add | ハイパーリンクを追加します。 |
Hyperlinks.Delete | ハイパーリンクを削除します。 |
Hyperlinks.Count | ハイパーリンクの数を返します。 |
Hyperlinks.Item | インデックスを使用して特定のハイパーリンクを取得します。 |
ハイパーリンクを追加する
指定したセルにハイパーリンクを追加するには、Hyperlinks.Addメソッドを使用します。
Sub AddHyperlink()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' A1セルにハイパーリンクを追加
ws.Hyperlinks.Add Anchor:=ws.Range("A1"), _
Address:="https://www.example.com", _
TextToDisplay:="Example Website"
End Sub
Addのメソッドの構文
Hyperlinks.Add(Anchor, Address, [SubAddress], [ScreenTip], [TextToDisplay])
Addのメソッド | 内容 |
---|---|
Anchor | ハイパーリンクを追加するセルまたは範囲 |
Address | リンク先のURLまたはファイルパス |
SubAddress | ドキュメント内の特定の位置(省略可能) |
ScreenTip | ハイパーリンクにカーソルを合わせたときに 表示されるテキスト(省略可能) |
TextToDisplay | セルに表示されるテキスト(省略可能) |
ws.Hyperlinks.Add Anchor:=ws.Range(“A1”), _ ←このコードの「_」についてはソースコード内の改行になります。
ハイパーリンクのアドレスを取得する
指定したセルに既存のハイパーリンクのアドレスを取得するには、Hyperlinksコレクションを使用します。
Sub GetHyperlinkAddress()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim link As Hyperlink
Set link = ws.Hyperlinks(1) ' 1番目のハイパーリンクを取得
MsgBox link.Address ' ハイパーリンクのアドレスを表示
End Sub
ハイパーリンクを削除する
指定したセルからハイパーリンクを削除するには、Deleteメソッドを使用します。
Sub DeleteHyperlink()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' A1セルのハイパーリンクを削除
ws.Hyperlinks(1).Delete
End Sub
すべてのハイパーリンクを削除する
シート内のすべてのハイパーリンクを削除する場合は、次のようにループを使用します。
Sub DeleteAllHyperlinks()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' すべてのハイパーリンクを削除
ws.Hyperlinks.Delete
End Sub
これらのコードを利用することで、Excelでハイパーリンクを簡単に操作することができます。
Excelファイルをハイパーリンクさせる
ExcelのA列にパス、B列にファイル名がある場合、C列にハイパーリンクを作成するVBAコードを以下に示します。このコードは、A列とB列の値を組み合わせて完全なパスを作成し、C列にそのハイパーリンクを挿入します。
データ準備で以下のようにします。(実際のファイルとフォルダに変更してください。)ファイル名は拡張子も含めます。
フォルダパス | ファイル名 | ハイパーリンク |
---|---|---|
C:\Users | book1.xlsx | |
C:\Downloads | book2.xlsx |
コード
Sub CreateHyperlinks()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim lastRow As Long
Dim i As Long
Dim filePath As String
Dim fileName As String
Dim fullPath As String
' 最終行を取得
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' 2行目から最終行までループ
For i = 2 To lastRow
filePath = ws.Cells(i, 1).Value ' A列の値を取得
fileName = ws.Cells(i, 2).Value ' B列の値を取得
' フルパスを作成
fullPath = filePath & "\" & fileName
' C列にハイパーリンクを追加
ws.Hyperlinks.Add Anchor:=ws.Cells(i, 3), _
Address:=fullPath, _
TextToDisplay:=fileName
Next i
End Sub
コードの説明
シートの設定
Set ws = ThisWorkbook.Sheets("Sheet1")
使用するワークシートを設定します。
最終行の取得
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
A列の最終行を取得します。
ループ処理
For i = 2 To lastRow
2行目から最終行までループして処理を行います。
パスとファイル名の取得
filePath = ws.Cells(i, 1).Value
fileName = ws.Cells(i, 2).Value
フルパスの作成
fullPath = filePath & "\" & fileName
ハイパーリンクの追加
ws.Hyperlinks.Add Anchor:=ws.Cells(i, 3), Address:=fullPath, TextToDisplay:=fileName
このコードを実行すると、A列にパス、B列にファイル名が入力されている行について、C列にそのファイルへのハイパーリンクが作成されます。ハイパーリンクの表示テキストはB列のファイル名になります。