VBA Hyperlinks.AddでExcelのセルにハイパーリンクを自動設定!基本から応用まで解説

当ページのリンクには広告 (Amazonアソシエイト含む) が含まれています。
アイキャッチ

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


特定のセルに自動でハイパーリンクを設定したい

・複数のデータに一括でリンクを設定する方法を知りたい

・リンク先を簡単に取得したい

そんなお悩みを解決してくれるのが、
VBAの「Hyperlinks.Add メソッド」です



この記事では、初心者の方でも安心して学べるように、VBAでハイパーリンクを設定・取得する方法を、基礎から応用までわかりやすく丁寧に解説します!

「どうやってリンクを設定すればいいの?」「リンク先を簡単に取得する方法は?」といった疑問もこの記事を読めばスッキリ解決することができます!

作業時間の短縮や業務の自動化を目指す方にとって、きっと役立つ内容になっていますので、ぜひ最後までお読みくださいね!


【 この記事の概要 】

よく使う度
難しさ
覚えておくと安心度

VBAをしっかり学びたいけれど、「どこから始めればいいかわからない」と迷っていませんか?

そんな方には、UdemyのVBA講座がおすすめです。

動画での丁寧な解説や、実践的な学習スタイルで、初心者でも無理なく基礎から応用まで習得できます。
自己学習を進める上で、何度でも繰り返し見返せる講座は非常に心強い味方になりますよ!

多彩な講座から自分に合った講座を探そう!
UdemyでVBAを検索
UdemyでVBAを検索 画像出典:Udemy

\  自分のペースで学べるVBA講座はこちら  /

目次

この記事で「できるようになる」こと

スポンサーリンク

そもそも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の値を参照する仕組みになっています。

使用例4:補足説明 (ツールチップ) 付きのハイパーリンクを設定する

以下のコードでは、セル「A1」にハイパーリンクを追加し、マウスをリンク上に移動すると「このリンクはサンプル用です」という補足説明(ツールチップ)が表示されます。

Sub AddHyperlinkWithTooltip()
    ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), _
        Address:="https://www.yahoo.co.jp", _
        ScreenTip:="このリンクはサンプル用です", _
        TextToDisplay:="サンプルリンク"
End Sub
補足説明 (ツールチップ) 付きのハイパーリンクを設定するの結果
ポイント
  • 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=メッセージ本文
  • 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 など
  • ハイパーリンクのループ処理
    • 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講座がおすすめです。

動画での丁寧な解説や、実践的な学習スタイルで、初心者でも無理なく基礎から応用まで習得できます。
自己学習を進める上で、何度でも繰り返し見返せる講座は非常に心強い味方になりますよ!

多彩な講座から自分に合った講座を探そう!
UdemyでVBAを検索
UdemyでVBAを検索 画像出典:Udemy

\  自分のペースで学べる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

処理結果

使用例1結果

コードの動作概要

STEP
シートの設定

アクティブシート(現在選択されているシート)を対象として処理を行います。

STEP
ハイパーリンクのループ処理

For Each ループを使って、アクティブシート内のすべてのハイパーリンクを順に取得します。

STEP
ハイパーリンクをクリック

取得した各ハイパーリンクに対して Follow メソッドを使用し、リンクを自動的にクリック(実行)します。

STEP
完了メッセージを表示

処理終了後にメッセージボックスで通知します。

このコードで使用している機能

スクロールできます
機能名説明
Dim – Setアクティブシートを格納するオブジェクト変数を指定します。
For Eachシート内のすべてのハイパーリンクを1つずつ取得して処理します。
Hyperlinksコレクションシート内のすべてのハイパーリンクを管理するコレクションです。
Followメソッド指定したハイパーリンクを実行(クリック)します。
MsgBox処理完了をユーザーに通知するメッセージボックスを表示します。

1行ずつコードを解説

クリック」してコードの詳細解説を見る
  1. Sub ClickAllHyperlinks()
    • サブルーチン「ClickAllHyperlinks」を定義します。
      このコードは、シート内のすべてのハイパーリンクをクリックする処理を行います。
  2. Dim ws As Worksheet
    • 「ws」:アクティブシートを格納するWorksheet型のオブジェクト変数。
  3. Dim link As Hyperlink
    • 「link」:シート内の各ハイパーリンクを格納するHyperlink型の変数。
  4. Set ws = ActiveSheet
    • 現在アクティブなシート(選択されているシート)を変数「ws」に設定します。
  5. For Each link In ws.Hyperlinks
    • アクティブシート内のすべてのハイパーリンクを順に取得するための「For Eachループ」を開始します。
  6. link.Follow
    • 取得したハイパーリンクをクリック(実行)します。
      このメソッドにより、リンク先(URLやファイル)が開きます。
  7. Next link
    • 次のハイパーリンクに処理を進めます。
      すべてのハイパーリンクが処理されるまでループを繰り返します。
  8. MsgBox “すべてのハイパーリンクをクリックしました!”
    • 処理が完了したことを知らせるメッセージボックスを表示します。
  9. 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

処理結果

使用例2の結果

コードの動作概要

STEP
シートのフォルダ選択ダイアログの表示設定

FileDialog(msoFileDialogFolderPicker) を使ってフォルダ選択ダイアログを表示します。

STEP
ヘッダーの設定

セルA1に「ファイル名」、セルB1に「ハイパーリンク」というヘッダーを設定します。

STEP
フォルダ内のすべてのファイルを取得

Dir 関数を使用して、指定フォルダ内のすべてのファイル名を取得します。

STEP
ファイル名とハイパーリンクの設定

ファイル名をA列に転記し、そのファイルへのハイパーリンクをB列に設定します。

STEP
完了メッセージを表示

すべてのファイルの処理が終わったら、メッセージボックスで通知します。

このコードで使用している機能

スクロールできます
機能名説明
FileDialogフォルダ選択ダイアログを表示して、フォルダパスを取得します。
Dir関数指定したフォルダ内のファイルやフォルダを取得します。
Do WhileDir関数で取得したファイルやフォルダの数だけ繰り返し処理を行います。
Hyperlinks.Add指定したセルにハイパーリンクを設定します。
MsgBox処理完了をユーザーに通知するメッセージボックスを表示します。

1行ずつコードを解説

クリック」してコードの詳細解説を見る
  1. Sub ListFilesWithHyperlinks()
    • サブルーチン「ListFilesWithHyperlinks」を定義します。
      このコードは指定フォルダ内のファイルをリスト化し、ハイパーリンクを設定します。
  2. Dim fd As FileDialog
    • 「fd」: フォルダ選択ダイアログを管理するFileDialog型の変数。
  3. Dim folderPath As String
    • 「folderPath」: 選択したフォルダのパスを格納する文字列型の変数。
  4. Dim fileName As String
    • 「fileName」: Dir関数で取得したファイル名を格納する文字列型の変数。
  5. Dim ws As Worksheet
    • 「ws」: アクティブシートを参照するWorksheet型の変数。
  6. Dim i As Long
    • 「i」: データを出力する行番号を格納する数値型の変数。
  7. Set ws = ActiveSheet
    • 現在アクティブなシートを「ws」に設定します。
  8. Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    • 「FileDialog」を使用してフォルダ選択ダイアログを表示します。
  9. fd.Title = “フォルダを選択してください”
    • ダイアログのタイトルに「フォルダを選択してください」という説明を設定します。
  10. If fd.Show = -1 Then
    folderPath = fd.SelectedItems(1) & “\”
    Else
    MsgBox “フォルダが選択されませんでした。”, vbExclamation, “中止”
    Exit Sub
    End If
    • ダイアログでフォルダが選択された場合、そのパスを「folderPath」に格納します。
      フォルダが選択されなかった場合、処理を中止してメッセージを表示します。
  11. ws.Cells(1, 1).Value = “ファイル名”
    ws.Cells(1, 2).Value = “ハイパーリンク”
    • A1セルに「ファイル名」、B1セルに「ハイパーリンク」と記載してヘッダーを設定します。
  12. i = 2
    • データ出力の開始行として「i」に「2」を設定します。
  13. fileName = Dir(folderPath & “.“)
    • Dir関数でフォルダ内の最初のファイル名を取得します。
  14. Do While fileName <> “”
    • ファイル名が存在する限り(空文字列でない限り)、処理をループします。
  15. 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関数」で次のファイルを取得します。
  16. Loop
    • フォルダ内のすべてのファイルが処理されるまでループを続けます。
  17. MsgBox “ファイルリストとハイパーリンクを作成しました!”, vbInformation, “完了”
    • 処理が完了したことを知らせるメッセージを表示し、サブルーチンを終了します。
  18. End Sub
    • サブルーチンを終了します。

総括・ポイント

このコードを活用すれば、フォルダ内のファイルをリスト化し、アクセスしやすいリンクを簡単に作成できます。
業務効率化にぜひお役立てください!

ポイント
  • 柔軟性
    • 指定フォルダのすべてのファイルを動的に取得するため、異なるフォルダにも簡単に対応できます。
  • 注意点
    • 選択したフォルダ内にファイルが存在しない場合は、一覧は作成されません。
    • ハイパーリンク設定時に、ファイルが存在しない場合はリンクエラーが発生する可能性があります。
スポンサーリンク

この記事のまとめ

この記事では、VBAの「Hyperlinks.Add メソッド」を活用して、ハイパーリンクを設定・取得・削除する方法を基礎から応用まで幅広く解説しました。

ハイパーリンク操作の基本から実践的な使用例までを紹介し、業務効率化に直結する活用法をお届けしました。

ポイントのおさらい

今回の学びを活用するために

「Hyperlinks.Add メソッド」は、Excel業務においてハイパーリンクを効率的に管理するための非常に便利なツールです。
今回の記事を通して得られたスキルは、以下の場面で特に役立ちます。

  • データベースやリスト作成の効率化
    • 商品リストや顧客リストにリンクを設定し、情報へのアクセスを簡単に。
  • 反復作業の自動化
    • ハイパーリンクの一括設定や削除で、手作業の負担を大幅に軽減。
  • 業務フローのスピードアップ
    • ファイルやWebページへのアクセスをハイパーリンクで最適化し、スムーズな業務進行を実現。

この記事を参考に、ハイパーリンクを自在に操作するスキルを身につけ、Excel業務をさらに効率化してみてください!

あわせて読みたい
サイトマップ このページは、本サイトの記事を分かりやすくまとめました。ぜひご覧ください。 目次 「VBA」を見る 「Officeスクリプト」を見る 「ワークシート関数」を見る 「JavaScr...
スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次