「VBAでハイパーリンクを設定するにはどうしたらいいんだろう?」
このように悩んだことはありませんか?

・特定のセルに自動でハイパーリンクを設定したい
・複数のデータに一括でリンクを設定する方法を知りたい
・リンク先を簡単に取得したい



そんなお悩みを解決してくれるのが、
VBAの「Hyperlinks.Add メソッド」です!
この記事では、初心者の方でも安心して学べるように、VBAでハイパーリンクを設定・取得する方法を、基礎から応用までわかりやすく丁寧に解説します!
「どうやってリンクを設定すればいいの?」「リンク先を簡単に取得する方法は?」といった疑問もこの記事を読めばスッキリ解決することができます!
作業時間の短縮や業務の自動化を目指す方にとって、きっと役立つ内容になっていますので、ぜひ最後までお読みくださいね!
【 この記事の概要 】
よく使う度 | |
難しさ | |
覚えておくと安心度 |
VBAをしっかり学びたいけれど、「どこから始めればいいかわからない」と迷っていませんか?
そんな方には、UdemyのVBA講座がおすすめです。
動画での丁寧な解説や、実践的な学習スタイルで、初心者でも無理なく基礎から応用まで習得できます。
自己学習を進める上で、何度でも繰り返し見返せる講座は非常に心強い味方になりますよ!


\ 自分のペースで学べるVBA講座はこちら /
この記事で「できるようになる」こと
- VBAのHyperlinks.Addメソッドはどんなことができるのか?確認を行う
- Hyperlinks.Addメソッドの基本構成を習得する
- Hyperlinks.Addメソッドの注意ポイントを把握する
- Hyperlinks.Addメソッドの実践でよく使われる使用例を確認する
そもそもHyperlinks.Addを使うと何が便利になるの? | 実践例をご紹介!
VBAの「Hyperlinks.Add メソッド」を使えば、作業が驚くほど効率的になります!
例えばこんな場面で役立ちますよ。
- 名簿やリストに自動でリンクを設定
メールアドレスやWebサイトのリストにリンクを一括で追加。
手作業をゼロにできます! - リンク付きのデータベースを作成
商品リストや顧客情報にリンクをつけて、すぐに詳細ページへアクセス可能。
業務のスピードアップに! - 毎日のルーチン作業を自動化
日々追加されるデータに自動でハイパーリンクを設定することで、反復作業を効率化できます。
このように、Hyperlinks.Addは「手作業の煩わしさ」を一気に解消し、時間を節約する強力な味方です。
次は、具体的なコードを使って設定方法を見ていきましょう!
【基礎編】VBA Hyperlinks.Addの基礎を徹底解説 | ハイパーリンクを設定してみよう
VBAを使って、Excelセルにハイパーリンクを設定したいときに役立つのがHyperlinks.Add メソッドです。
このメソッドを使えば、セルや図形に簡単にリンクを追加することができます。
まずは基本的な使い方を見ていきましょう!
基本構文


引数名 | 必須/任意 | 説明 |
---|---|---|
Anchor | 必須 | ハイパーリンクを設定するセルや図形を指定します (例: Range オブジェクト)。 |
Address | 必須 | ハイパーリンクのリンク先URLを指定します(外部リンクの場合)。 |
SubAddress | 任意 | 同じブック内のセルや名前付き範囲をリンク先として指定します。 |
ScreenTip | 任意 | ハイパーリンクにカーソルを合わせた際にポップアップ表示される 補足説明を指定します。 |
TextToDisplay | 任意 | セルや図形に表示されるリンクテキストを指定します。 |
さらに詳細な仕様については、Microsoft公式のHyperlinks.Add メソッド (Excel)を参照してください。
基本的なHyperlinks.Addの使用例をご紹介
使用例1:セルに簡単なハイパーリンクを設定する
以下のコードを実行すると、セル「A1」にリンク先が「https://www.yahoo.co.jp 」、表示テキストが「Yahoo!」のハイパーリンクが設定されます。
Sub AddHyperlink()
ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), _
Address:="https://www.yahoo.co.jp", _
TextToDisplay:="Yahoo!"
End Sub


- Anchorの設定が必須
- ハイパーリンクを設定するセル(
Anchor
)を必ず指定する必要があります。
指定しない場合、エラーが発生します。
- ハイパーリンクを設定するセル(
- TextToDisplayの任意性
- 表示テキスト(
TextToDisplay
)は指定しなくても構いません。
指定しない場合は、リンク先URL(Address
)がセルに表示されます。
- 表示テキスト(
- リンク先の動作
- 指定したリンク先(
Address
)は、通常ブラウザで開かれますが、mailto:
のようなメールリンクの場合は、メールソフトが起動します。
- 指定したリンク先(
使用例2:別ファイルにリンクを設定する
以下のコードでは、セル「A1」に別のExcelファイルへのリンクを設定します。
このリンクをクリックすると、指定したファイルが開きます。
Sub AddFileLink()
ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), _
Address:="C:\サンプル\サンプル1.xlsx", _
TextToDisplay:="別ファイルを開く"
End Sub


- Addressにファイルのフルパスを指定
Address
にはリンク先のファイルパスを指定します。- フルパスの例:
C:\サンプル\サンプル1.xlsx
- 相対パスの例:
..\OtherFolder\サンプル1.xlsx
※現在のExcelファイルの保存場所を基準にした相対パス)
- フルパスの例:
- 表示テキスト(TextToDisplay)でリンクの意味を分かりやすく
- TextToDisplay を設定することで、セルに表示される文字列をカスタマイズできます。
使用例3:サブアドレスを指定してセル内リンクを設定する
次のコードでは、同じブック内の特定のセル(例:Sheet2のセルB2)にリンクを設定します。
Sub AddSubAddressLink()
ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), _
Address:="", _
SubAddress:="'Sheet2'!B2", _
TextToDisplay:="Sheet2のB2に移動"
End Sub


- Addressを空にすることで、同じブック内リンクを指定する
- Address はブック外(外部URLなど)へのリンクを指定する際に使用しますが、同じブック内のリンクを設定する場合は空(
""
)にする必要があります。
その代わりに、SubAddress を使って「リンク先のシート名+セル番地」を指定します。
- なぜAddressではなくSubAddressなのか?
- Addressは、主に外部リンク(Webサイトや外部ファイル)を対象としています。
一方、SubAddressは、ブック内のリンク先(例:別のシートや特定のセル)を指定するために設計されています。
Addressを空にすることで、VBAは「ブック内のリンク」と認識し、SubAddressの値を参照する仕組みになっています。
- Addressは、主に外部リンク(Webサイトや外部ファイル)を対象としています。
- なぜAddressではなくSubAddressなのか?
- Address はブック外(外部URLなど)へのリンクを指定する際に使用しますが、同じブック内のリンクを設定する場合は空(
使用例4:補足説明 (ツールチップ) 付きのハイパーリンクを設定する
以下のコードでは、セル「A1」にハイパーリンクを追加し、マウスをリンク上に移動すると「このリンクはサンプル用です」という補足説明(ツールチップ)が表示されます。
Sub AddHyperlinkWithTooltip()
ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), _
Address:="https://www.yahoo.co.jp", _
ScreenTip:="このリンクはサンプル用です", _
TextToDisplay:="サンプルリンク"
End Sub


- ScreenTipで補足説明 (ツールチップ) を指定できる
- ScreenTipを指定すると、ハイパーリンクにマウスを重ねた際に補足説明がポップアップ表示されます。
⇒ リンク先の概要を簡単に伝えるときに便利です。
- ScreenTipを指定すると、ハイパーリンクにマウスを重ねた際に補足説明がポップアップ表示されます。
使用例5:メールアドレスへのリンクを設定する
次のコードでは、セル「A1」にメールアドレスへのリンクを設定します。
このリンクをクリックすると、既定のメールソフトが起動し、メール作成画面が開きます。
Sub AddEmailLink()
ActiveSheet.Hyperlinks.Add Anchor:=Range("A4"), _
Address:="mailto:someone@example.com?subject=お問い合わせ", _
TextToDisplay:="メール送信"
End Sub


- Addressに「mailto:」を指定してメールリンクを設定
- 「mailto:」プロトコルを使用することで、リンク先をWebサイトではなく、メールアドレスに設定できます。
⇒ メールリンクの形式mailto:メールアドレス?subject=件名&body=メッセージ本文
- 「mailto:」プロトコルを使用することで、リンク先をWebサイトではなく、メールアドレスに設定できます。
- TextToDisplayで表示するリンクテキストを指定
- セルに表示される文字列をTextToDisplayで指定します。
この例では「メール送信」というテキストが表示されます。
- セルに表示される文字列をTextToDisplayで指定します。
【応用編】VBAでハイパーリンクを取得・削除する方法
ここからは、ハイパーリンクを取得したり、既存のリンクを削除する方法を解説します。
応用例1:セルのハイパーリンク先を取得する
「セルに設定されているリンク先がどこなのか確認したい」と思ったことはありませんか?
以下のコードで、セル「A1」に設定されたハイパーリンクのリンク先を取得できます。
Sub GetHyperlinkAddress()
Dim linkAddress As String
'// セルA1のハイパーリンク先を取得
On Error Resume Next '// ハイパーリンクがない場合のエラー回避
linkAddress = ActiveSheet.Range("A1").Hyperlinks(1).Address
On Error GoTo 0
'// 結果をメッセージボックスで表示
If linkAddress <> "" Then
MsgBox "ハイパーリンクのアドレス: " & linkAddress
Else
MsgBox "ハイパーリンクが設定されていません。"
End If
End Sub


- ハイパーリンクを取得する方法
Hyperlinks(1).Address
を使用することで、指定セルのハイパーリンクのリンク先(URL)を取得できます。- 注意:
Hyperlinks(1)
は、そのセル内の最初のハイパーリンクを指します。
- エラー回避の仕組み
On Error Resume Next
を使用して、セルにハイパーリンクが設定されていない場合でもエラーが発生しないようにしています。- ハイパーリンクがない場合、
Hyperlinks(1)
は空の値を返します。
- 結果の判定
- 取得したリンク先が空(
""
)でないかを確認することで、ハイパーリンクが設定されているかどうかを判定しています。
- 取得したリンク先が空(
応用例2:すべてのハイパーリンクを取得して一覧化する
複数のセルに設定されたハイパーリンクを一覧化したい場合は、以下のコードを使用します。
この例では、シート内のすべてのハイパーリンクの情報を「リンク先」と「セル番地」として別シートに出力します。
Sub ListAllHyperlinks()
Dim ws As Worksheet
Dim linkWs As Worksheet
Dim link As Hyperlink
Dim i As Long
'// 出力先のシートを作成
Set ws = ActiveSheet
Set linkWs = ThisWorkbook.Sheets.Add
linkWs.Name = "リンク一覧"
'// ヘッダーを設定
linkWs.Range("A1").Value = "セル番地"
linkWs.Range("B1").Value = "リンク先"
i = 2 ' 出力開始行
'// ハイパーリンクを取得して出力
For Each link In ws.Hyperlinks
linkWs.Cells(i, 1).Value = link.Parent.Address '// セル番地
linkWs.Cells(i, 2).Value = link.Address '// リンク先
i = i + 1
Next link
MsgBox "ハイパーリンク一覧を作成しました!"
End Sub


- 出力先シートの作成
ThisWorkbook.Sheets.Add
を使って新しいシートを作成し、一覧を出力します。
作成されたシートの名前は「リンク一覧」ですが、既に同名のシートが存在する場合はエラーになるため、必要に応じてシート名を変更してください。
- ハイパーリンクの情報を取得
- セル番地(link.Parent.Address)
- 各ハイパーリンクが設定されているセルの番地を取得します。
例:リンクがセルA1に設定されていれば「$A$1」と出力されます。
- 各ハイパーリンクが設定されているセルの番地を取得します。
- リンク先(link.Address)
- ハイパーリンクのリンク先(URLやファイルパス)を取得します。
例:https://www.yahoo.co.jp
など
- ハイパーリンクのリンク先(URLやファイルパス)を取得します。
- セル番地(link.Parent.Address)
- ハイパーリンクのループ処理
For Each link In ws.Hyperlinks
を使って、アクティブなシート内のすべてのハイパーリンクを順番に処理します。
ハイパーリンクが1つもない場合、ループは実行されず、一覧は空になります。
応用例3:特定のハイパーリンクを削除する
既存のハイパーリンクを削除したい場合は、以下のコードを使用します。
Sub RemoveHyperlink()
'// セルA1のハイパーリンクを削除
On Error Resume Next '// ハイパーリンクがない場合のエラー回避
ActiveSheet.Range("A1").Hyperlinks(1).Delete
On Error GoTo 0
MsgBox "ハイパーリンクを削除しました!"
End Sub


- エラー回避の工夫
- ハイパーリンクが存在しない場合の対応
- セルにハイパーリンクが設定されていない場合でもエラーにならないように、
On Error Resume Next
を使用しています。
この工夫により、ハイパーリンクがないセルを処理してもスムーズに実行できます。
- セルにハイパーリンクが設定されていない場合でもエラーにならないように、
- ハイパーリンクが存在しない場合の対応
- 削除されるのはハイパーリンクのみ
- このコードで削除されるのはハイパーリンクのリンク情報のみです。
セル内の表示テキスト(リンクに設定されていた文字列)はそのまま残ります。
- このコードで削除されるのはハイパーリンクのリンク情報のみです。
【注意ポイント】VBAでハイパーリンクを扱う際の注意点
VBAでハイパーリンクを扱う際には、いくつかの注意点を把握しておくと、エラーを防いだり効率的に処理を進めることができます。
以下に、特に気をつけたいポイントをまとめました。
注意1: ハイパーリンクのないセルを操作しようとするとエラーになる
セルにハイパーリンクが設定されていない場合に Hyperlinks(1)
を操作しようとすると、エラーが発生します。
対処法
エラーを回避するために、コードの中で On Error Resume Next
を使用すると安全です。
Sub SafeHyperlinkCheck()
Dim linkAddress As String
On Error Resume Next
linkAddress = ActiveSheet.Range("A1").Hyperlinks(1).Address
On Error GoTo 0
If linkAddress <> "" Then
MsgBox "リンク先: " & linkAddress
Else
MsgBox "ハイパーリンクが設定されていません。"
End If
End Sub
注意2: リンク先が長すぎる場合の対応
リンク先URLが長い場合、コードが読みにくくなったり、保守性が低下します。さらに、間違いが発生しやすくなる可能性があります。
対処法
長いリンク先は、コード内で直接記述するのではなく、外部ファイルやセルに保存して管理するのがおすすめです。
Sub UseCellForHyperlink()
Dim linkAddress As String
'// セルB1にリンク先URLを記載しておく
linkAddress = ActiveSheet.Range("B1").Value
'// セルA1にハイパーリンクを設定
ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), _
Address:=linkAddress, _
TextToDisplay:="リンク"
End Sub
注意3: 大量のハイパーリンク操作で処理が遅くなる場合
多数のセルに対してハイパーリンクを設定・削除する場合、処理が遅くなることがあります。
特にループ処理を使って1セルずつ操作する場合、パフォーマンスが低下します。
対処法
配列を使用して一括で処理を行うことで、パフォーマンスを大幅に向上させることができます。また、Application.ScreenUpdating = False
を利用して画面の更新を停止するのも効果的です。
Sub FastHyperlinkDeletion()
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
'// 処理対象のシートと範囲を設定
Set ws = ActiveSheet
Set rng = ws.UsedRange
'// 画面更新を停止
Application.ScreenUpdating = False
'// 範囲内のすべてのハイパーリンクを削除
On Error Resume Next
For Each cell In rng
cell.Hyperlinks.Delete
Next cell
On Error GoTo 0
'// 画面更新を再開
Application.ScreenUpdating = True
MsgBox "すべてのハイパーリンクを削除しました!"
End Sub
実践でよく使用されるハイパーリンクの使用例をご紹介
ここからは、VBAのHyperlinks.Add メソッドの具体的な使用例を紹介します。
以下に紹介する使用例は、すべてコピペしてすぐに実行できるコードです。
気になる例は、ぜひご覧いただき、実際に実行してみてください。
VBAをしっかり学びたいけれど、「どこから始めればいいかわからない」と迷っていませんか?
そんな方には、UdemyのVBA講座がおすすめです。
動画での丁寧な解説や、実践的な学習スタイルで、初心者でも無理なく基礎から応用まで習得できます。
自己学習を進める上で、何度でも繰り返し見返せる講座は非常に心強い味方になりますよ!


\ 自分のペースで学べるVBA講座はこちら /
使用例1: シート内のすべてのハイパーリンクをクリックする
このコードでは、アクティブシート内のすべてのセルに設定されているハイパーリンクを自動的にクリック(実行)します。
大量のリンクを一括で開きたい場合や、リンク先を一括確認したい場合に活用できます。
コード例 | シート内リンクを一括クリック
Sub ClickAllHyperlinks()
Dim ws As Worksheet
Dim link As Hyperlink
'// 現在のアクティブシートを設定
Set ws = ActiveSheet
'// アクティブシート内のすべてのハイパーリンクを実行
For Each link In ws.Hyperlinks
link.Follow '// ハイパーリンクをクリック(実行)
Next link
MsgBox "すべてのハイパーリンクをクリックしました!"
End Sub
処理結果


コードの動作概要
アクティブシート(現在選択されているシート)を対象として処理を行います。
For Each
ループを使って、アクティブシート内のすべてのハイパーリンクを順に取得します。
取得した各ハイパーリンクに対して Follow
メソッドを使用し、リンクを自動的にクリック(実行)します。
処理終了後にメッセージボックスで通知します。
このコードで使用している機能
機能名 | 説明 |
---|---|
Dim – Set | アクティブシートを格納するオブジェクト変数を指定します。 |
For Each | シート内のすべてのハイパーリンクを1つずつ取得して処理します。 |
Hyperlinksコレクション | シート内のすべてのハイパーリンクを管理するコレクションです。 |
Followメソッド | 指定したハイパーリンクを実行(クリック)します。 |
MsgBox | 処理完了をユーザーに通知するメッセージボックスを表示します。 |
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub ClickAllHyperlinks()
- サブルーチン「ClickAllHyperlinks」を定義します。
このコードは、シート内のすべてのハイパーリンクをクリックする処理を行います。
- サブルーチン「ClickAllHyperlinks」を定義します。
- Dim ws As Worksheet
- 「ws」:アクティブシートを格納するWorksheet型のオブジェクト変数。
- Dim link As Hyperlink
- 「link」:シート内の各ハイパーリンクを格納するHyperlink型の変数。
- Set ws = ActiveSheet
- 現在アクティブなシート(選択されているシート)を変数「ws」に設定します。
- For Each link In ws.Hyperlinks
- アクティブシート内のすべてのハイパーリンクを順に取得するための「For Eachループ」を開始します。
- link.Follow
- 取得したハイパーリンクをクリック(実行)します。
このメソッドにより、リンク先(URLやファイル)が開きます。
- 取得したハイパーリンクをクリック(実行)します。
- Next link
- 次のハイパーリンクに処理を進めます。
すべてのハイパーリンクが処理されるまでループを繰り返します。
- 次のハイパーリンクに処理を進めます。
- MsgBox “すべてのハイパーリンクをクリックしました!”
- 処理が完了したことを知らせるメッセージボックスを表示します。
- End Sub
- サブルーチンを終了します。
総括・ポイント
このコードは、アクティブシート内のすべてのハイパーリンクをクリックする簡単な使用例です。
以下のような場面で特に役立ちます。
- 大量のリンクを一括確認したい場合
- 手動でクリックする手間を省き、一括でリンクを確認できます。
- リンクの動作確認
- シート内のすべてのリンクが正しく動作するかを効率的にテストできます。
使用例2: 指定フォルダ内のファイルをセルに転記し、ハイパーリンクを設定する
このコードでは、指定したフォルダ内に保存されているすべてのファイルをリスト化し、それぞれのファイルパスをセルに転記した上で、ハイパーリンクを設定します。
フォルダの選択にはFileDialog
を使用します。
コード例 | フォルダ内のファイルをリスト化してハイパーリンクを設定
Sub ListFilesWithHyperlinks()
Dim fd As FileDialog
Dim folderPath As String
Dim fileName As String
Dim ws As Worksheet
Dim i As Long
'// アクティブシートを変数にセット
Set ws = ActiveSheet
'// フォルダ選択ダイアログの設定
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
fd.Title = "フォルダを選択してください"
'// ダイアログを表示し、フォルダが選択された場合の処理
If fd.Show = -1 Then
folderPath = fd.SelectedItems(1) & "\" '// 選択されたフォルダパスを取得
Else
MsgBox "フォルダが選択されませんでした。", vbExclamation, "中止"
Exit Sub
End If
'// ヘッダーの設定
ws.Cells(1, 1).Value = "ファイル名"
ws.Cells(1, 2).Value = "ハイパーリンク"
i = 2 ' データ出力の開始行
'// フォルダ内のすべてのファイルを取得
fileName = Dir(folderPath & "*.*") '// フォルダ内の最初のファイルを取得
Do While fileName <> ""
'// ファイル名をA列に記載
ws.Cells(i, 1).Value = fileName
'// ハイパーリンクをB列に設定
ws.Hyperlinks.Add Anchor:=ws.Cells(i, 2), _
Address:=folderPath & fileName, _
TextToDisplay:="開く"
i = i + 1
fileName = Dir() '// 次のファイルを取得
Loop
MsgBox "ファイルリストとハイパーリンクを作成しました!", vbInformation, "完了"
End Sub
処理結果


コードの動作概要
FileDialog(msoFileDialogFolderPicker)
を使ってフォルダ選択ダイアログを表示します。
セルA1に「ファイル名」、セルB1に「ハイパーリンク」というヘッダーを設定します。
Dir 関数を使用して、指定フォルダ内のすべてのファイル名を取得します。
ファイル名をA列に転記し、そのファイルへのハイパーリンクをB列に設定します。
すべてのファイルの処理が終わったら、メッセージボックスで通知します。
このコードで使用している機能
機能名 | 説明 |
---|---|
FileDialog | フォルダ選択ダイアログを表示して、フォルダパスを取得します。 |
Dir関数 | 指定したフォルダ内のファイルやフォルダを取得します。 |
Do While | Dir関数で取得したファイルやフォルダの数だけ繰り返し処理を行います。 |
Hyperlinks.Add | 指定したセルにハイパーリンクを設定します。 |
MsgBox | 処理完了をユーザーに通知するメッセージボックスを表示します。 |
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub ListFilesWithHyperlinks()
- サブルーチン「ListFilesWithHyperlinks」を定義します。
このコードは指定フォルダ内のファイルをリスト化し、ハイパーリンクを設定します。
- サブルーチン「ListFilesWithHyperlinks」を定義します。
- Dim fd As FileDialog
- 「fd」: フォルダ選択ダイアログを管理するFileDialog型の変数。
- Dim folderPath As String
- 「folderPath」: 選択したフォルダのパスを格納する文字列型の変数。
- Dim fileName As String
- 「fileName」: Dir関数で取得したファイル名を格納する文字列型の変数。
- Dim ws As Worksheet
- 「ws」: アクティブシートを参照するWorksheet型の変数。
- Dim i As Long
- 「i」: データを出力する行番号を格納する数値型の変数。
- Set ws = ActiveSheet
- 現在アクティブなシートを「ws」に設定します。
- Set fd = Application.FileDialog(msoFileDialogFolderPicker)
- 「FileDialog」を使用してフォルダ選択ダイアログを表示します。
- fd.Title = “フォルダを選択してください”
- ダイアログのタイトルに「フォルダを選択してください」という説明を設定します。
- If fd.Show = -1 Then
folderPath = fd.SelectedItems(1) & “\”
Else
MsgBox “フォルダが選択されませんでした。”, vbExclamation, “中止”
Exit Sub
End If- ダイアログでフォルダが選択された場合、そのパスを「folderPath」に格納します。
フォルダが選択されなかった場合、処理を中止してメッセージを表示します。
- ダイアログでフォルダが選択された場合、そのパスを「folderPath」に格納します。
- ws.Cells(1, 1).Value = “ファイル名”
ws.Cells(1, 2).Value = “ハイパーリンク”- A1セルに「ファイル名」、B1セルに「ハイパーリンク」と記載してヘッダーを設定します。
- i = 2
- データ出力の開始行として「i」に「2」を設定します。
- fileName = Dir(folderPath & “.“)
- Dir関数でフォルダ内の最初のファイル名を取得します。
- Do While fileName <> “”
- ファイル名が存在する限り(空文字列でない限り)、処理をループします。
- ws.Cells(i, 1).Value = fileName
ws.Hyperlinks.Add Anchor:=ws.Cells(i, 2), _
Address:=folderPath & fileName, _
TextToDisplay:=”開く”
i = i + 1
fileName = Dir()- A列「Cells(i, 1)」にファイル名を記載します。
- B列「Cells(i, 2)」にそのファイルへのハイパーリンクを設定します。
- 「i」 をインクリメントして次の行に進みます。
- 「Dir関数」で次のファイルを取得します。
- Loop
- フォルダ内のすべてのファイルが処理されるまでループを続けます。
- MsgBox “ファイルリストとハイパーリンクを作成しました!”, vbInformation, “完了”
- 処理が完了したことを知らせるメッセージを表示し、サブルーチンを終了します。
- End Sub
- サブルーチンを終了します。
総括・ポイント
このコードを活用すれば、フォルダ内のファイルをリスト化し、アクセスしやすいリンクを簡単に作成できます。
業務効率化にぜひお役立てください!
- 柔軟性
- 指定フォルダのすべてのファイルを動的に取得するため、異なるフォルダにも簡単に対応できます。
- 注意点
- 選択したフォルダ内にファイルが存在しない場合は、一覧は作成されません。
- ハイパーリンク設定時に、ファイルが存在しない場合はリンクエラーが発生する可能性があります。
この記事のまとめ
この記事では、VBAの「Hyperlinks.Add メソッド」を活用して、ハイパーリンクを設定・取得・削除する方法を基礎から応用まで幅広く解説しました。
ハイパーリンク操作の基本から実践的な使用例までを紹介し、業務効率化に直結する活用法をお届けしました。
ポイントのおさらい
- Hyperlinks.Add メソッドの基礎と使い方を学ぶ
- Hyperlinks.Add メソッドを使用することで、以下のようなハイパーリンクの操作が簡単に行えることを学びました。
- 特定のセルや図形に外部リンクや内部リンクを設定する方法
- ツールチップや表示テキストを設定してリンクを分かりやすくカスタマイズする方法
⇒ 「【基礎編】VBA-Hyperlinks.Addの基礎を徹底解説 | ハイパーリンクを設定してみよう」をもう一度見る
- Hyperlinks.Add メソッドを使用することで、以下のようなハイパーリンクの操作が簡単に行えることを学びました。
- Hyperlinks.Add メソッドの注意点を理解する
- ハイパーリンク操作における注意点を解説しました。特に次のポイントが重要です。
- ハイパーリンクが設定されていないセルを操作した場合のエラー回避方法
On Error Resume Next
の活用でエラーを防止。
- リンク先が長い場合の対応策
- リンク先をコード内に直接記載せず、セルや外部ファイルで管理する方法を紹介。
- 大量のハイパーリンクを扱う際の処理速度改善策
- 配列や画面更新の停止を活用して高速化。
⇒ 「【注意ポイント】VBAでハイパーリンクを扱う際の注意点」をもう一度見る
- 配列や画面更新の停止を活用して高速化。
- ハイパーリンクが設定されていないセルを操作した場合のエラー回避方法
- ハイパーリンク操作における注意点を解説しました。特に次のポイントが重要です。
- Hyperlinks.Add メソッドの使用例を確認する
- 業務でよく使用されるハイパーリンクの使用例を以下のように具体的に紹介しました。
⇒ 「実践でよく使用されるハイパーリンクの使用例をご紹介」をもう一度見る
- 業務でよく使用されるハイパーリンクの使用例を以下のように具体的に紹介しました。
今回の学びを活用するために
「Hyperlinks.Add メソッド」は、Excel業務においてハイパーリンクを効率的に管理するための非常に便利なツールです。
今回の記事を通して得られたスキルは、以下の場面で特に役立ちます。
- データベースやリスト作成の効率化
- 商品リストや顧客リストにリンクを設定し、情報へのアクセスを簡単に。
- 反復作業の自動化
- ハイパーリンクの一括設定や削除で、手作業の負担を大幅に軽減。
- 業務フローのスピードアップ
- ファイルやWebページへのアクセスをハイパーリンクで最適化し、スムーズな業務進行を実現。
この記事を参考に、ハイパーリンクを自在に操作するスキルを身につけ、Excel業務をさらに効率化してみてください!

