大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、ハイパーリンクの設定と取得について、ご紹介します。ハイパーリンクの設定や取得は、「Hyperlinks」を使います。ハイパーリンクの設定と取得は、手動ですると手間ですので、VBAで自動化できると便利です。具体的なVBAコードを使って、解説していきます。

はじめに

この記事では、ハイパーリンクの設定と取得について、ご紹介します。

ハイパーリンクの設定には、「Hyperlinks.Add」を使います。

反対に、ハイパーリンクの値を取得するには、「Hyperlinks」を使います。

VBAでハイパーリンクの設定を自動化できると、手間な設定から解放されて、作業を効率化できます。

では、ハイパーリンクの設定と取得について、解説していきます。

この記事で紹介すること

  • ハイパーリンクの設定
  • ハイパーリンクの削除
  • ハイパーリンクの取得
  • ハイパーリンクを開く

目次

VBAでハイパーリンクを設定

VBAで、ハイパーリンクを設定する方法について、ご紹介します。

Hyperlinks.Addを使う

ハイパーリンクを設定するには、「Hyperlinks.Add」を使います。

入力は、次のようにします。

「シート.Hyperlinks.Add Anchor:=セル範囲, Address:=フルパスのリンク」

ハイパーリンク先をエクセルに設定する場合で、シートまで設定する場合は、次のように入力します。

「シート.Hyperlinks.Add Anchor:=セル範囲, Address:=フルパスのリンク, SubAddress:='シート名'!セル範囲」

という感じです。

では、いくつかのパターンで、ハイパーリンクを設定してみます。

Webサイトへのハイパーリンク

Webサイトへのハイパーリンクを作成してみます。

Sub TEST1()
      
    With ActiveSheet
        'Webサイトへの、ハイパーリンクの設定
        .Hyperlinks.Add anchor:=.Cells(1, 1), _
                        Address:="https://www.yahoo.co.jp"
    End With
    
End Sub

では、実行してみます。

Webサイトへのハイパーリンクを設定

Webサイトへのハイパーリンクが設定できました

では、クリックしてみます。

ハイパーリンクでWebサイトを開く

ハイパーリンク先を表示した結果

「Yahoo」のWebサイトが表示されました。

フォルダへのハイパーリンク

フォルダへのハイパーリンクを作成してみます。

Sub TEST2()
    
    With ActiveSheet
        'フォルダへの、ハイパーリンクの設定
        .Hyperlinks.Add anchor:=.Cells(1, 1), _
                        Address:="C:\TEST"
    End With
    
End Sub

では、実行してみます。

フォルダへのハイパーリンクを設定

フォルダへのハイパーリンクが設定できました

では、クリックしてみます。

ハイパーリンクでフォルダを開く

ハイパーリンク先を表示した結果

「TEST」のフォルダが表示されました。

別ブックへのハイパーリンク

別ブックへのハイパーリンクを作成してみます。

Sub TEST3()
    
    With ActiveSheet
        '別ブックへの、ハイパーリンクの設定
        .Hyperlinks.Add anchor:=.Cells(1, 1), _
                        Address:="C:\TEST\TEST.xlsx"
    End With
    
End Sub

では、実行してみます。

フォルダへのハイパーリンクを設定

別ブックへのハイパーリンクが設定できました

では、クリックしてみます。

ハイパーリンクで別ブックを開く

ハイパーリンク先を表示した結果

「TEST.xlsx」のブックが表示されました。

別シートへのハイパーリンク

別ブックで別シートへのハイパーリンクを作成してみます。

エクセルのシートまでを指定する場合は、「SubAddress」を使います。

Sub TEST4()
    
    With ActiveSheet
        '別シートへの、ハイパーリンクの設定
        .Hyperlinks.Add anchor:=.Cells(1, 1), _
                        Address:="C:\TEST\TEST.xlsx", _
                        SubAddress:="'Sheet2'!B3"
    End With
    
End Sub

では、実行してみます。

フォルダへのハイパーリンクを設定

別ブックで別シートへのハイパーリンクが設定できました

では、クリックしてみます。

ハイパーリンクで別ブックの別シートを開く

ハイパーリンク先を表示した結果

「TEST.xlsx」の「Sheet2」が表示されて、セル「B3」に移動しています。

同ブックの別シートへのハイパーリンク

同ブックの別シートへのハイパーリンクを作成してみます。

同ブック内にハイパーリンクを作成する場合は、「Address」の値を、空白""に設定します。

Sub TEST5()
    
    With ActiveSheet
        '同ブックの別シートへの、ハイパーリンクの設定
        .Hyperlinks.Add anchor:=.Cells(1, 1), _
                        Address:="", _
                        SubAddress:="'Sheet2'!B3"
    End With
    
End Sub

では、実行してみます。

フォルダへのハイパーリンクを設定

同ブックの別シートへのハイパーリンクが設定できました

では、クリックしてみます。

ハイパーリンクで同ブックの別シートを開く

ハイパーリンク先を表示した結果

同ブックの「Sheet2」へ移動して、セル「B3」がアクティブになっています。

VBAでハイパーリンクを削除

次は、ハイパーリンクを削除する方法です。

Hyperlinks.Deleteを使う

ハイパーリンクの削除には、「Hyperlinks.Delete」を使います。

一つのハイパーリンクを削除する方法と、シート内のハイパーリンクを削除する方法があります。

ハイパーリンクを削除

まず、セルA1に設定された、ハイパーリンクを削除してみます。

Sub TEST6()
    
    '一つのハイパーリンクを削除
    ActiveSheet.Cells(1, 1).Hyperlinks.Delete
    
End Sub

セルA1にハイパーリンクが設定された、シートを用意しました。

ハイパーリンクが設定されたセル

セルA1にハイパーリンクが設定されたシート

では、実行してみます。

セルのハイパーリンクを削除

一つのセルのハイパーリンクを削除した結果

セルA1のハイパーリンクを、削除することができました。

シート内のハイパーリンクを削除

続いて、シート内のすべてのハイパーリンクを、削除してみます。

Sub TEST7()
    
    'シート内のすべてのハイパーリンクを削除
    ActiveSheet.Hyperlinks.Delete
    
End Sub

1つのシーと内に、複数のハイパーリンクを設定しました。

複数ハイパーリンクが設定されたシート

1つのシーと内に複数のハイパーリンクを設定

では、VBAコードを実行して、シート内のハイパーリンクをすべて削除してみます。

シート内のハイパーリンクを削除

1つのシート内のハイパーリンクを削除した結果

1つのシート内のハイパーリンクを、すべて削除できました。

VBAでハイパーリンクの値を取得

次は、ハイパーリンクが設定されたセルから、ハイパーリンクの値を取得する方法です。

ハイパーリンクが設定されたセルから、値を取得するには、「Hyperlinks」を使います。

アドレスを取得

ハイパーリンクのアドレスを、セルから取得するVBAコードです。

Sub TEST8()
    
    'ハイパーリンクの「アドレス」を取得
    a = ActiveSheet.Cells(1, 1).Hyperlinks(1).Address
    
    Debug.Print a
    
End Sub

セルに別ブック「C:\TEST\TEST.xlsx」へのハイパーリンクを設定しました。

ハイパーリンクが設定されたセル

別ブックへのハイパーリンクを設定

では、ハイパーリンクのアドレスを取得してみます。

ハイパーリンクの「アドレス」を取得

ハイパーリンクのアドレスを取得した結果

ハイパーリンクのアドレス「C:\TEST\TEST.xlsx」を取得できました。

サブアドレスを取得

次は、ハイパーリンクのサブアドレスを取得してみます。

Sub TEST9()
    
    'ハイパーリンクの「サブアドレス」を取得
    a = ActiveSheet.Cells(1, 1).Hyperlinks(1).SubAddress
    
    Debug.Print a
    
End Sub

セルに別ブックの別シート「C:\TEST\TEST.xlsx - 'Sheet2'!B3」へのハイパーリンクを設定しました。

ハイパーリンクが設定されたセル

別ブックの別シートへのハイパーリンクを設定

では、ハイパーリンクのサブアドレスを取得してみます。

ハイパーリンクの「サブアドレス」を取得

ハイパーリンクのサブアドレスを取得した結果

ハイパーリンクのサブアドレスを取得できました。

シート内のハイパーリンクを取得

次は、シート内のすべてのハイパーリンクを取得してみます。

Sub TEST10()
    
    'シート内のハイパーリンクをループ
    For Each a In ActiveSheet.Hyperlinks
        'ハイパーリンクのアドレスを取得
        Debug.Print a.Address
    Next
    
End Sub

「For Each」を使ってコレクションは「ActiveSheet.Hyperlinks」とします。

ハイパーリンクを複数のセルに設定しました。

複数のハイパーリンクを設定

複数のセルにハイパーリンクを設定

では、実行してみます。

シート内のハイパーリンクを取得

シート内のすべてのハイパーリンクを取得した結果

シート内のすべてのハイパーリンクを取得できました。

「For」と「Count」でも取得できます

次のように「For」と「Count」を使ってもできます。

Sub TEST11()
    
    With ActiveSheet
        'シート内のハイパーリンクをループ
        For i = 1 To .Hyperlinks.Count
            'ハイパーリンクのアドレスを取得
            Debug.Print .Hyperlinks(i).Address
        Next
    End With
        
End Sub

では、実行してみます。

シート内のすべてのハイパーリンクを取得した結果

シート内のすべてのハイパーリンクを取得できました。

ハイパーリンクのセル範囲を取得

シート内で、すべてのハイパーリンクのセル範囲を取得することもできます。

Sub TEST12()
    
    'シート内のハイパーリンクをループ
    For Each a In ActiveSheet.Hyperlinks
        'ハイパーリンクのセル範囲を取得
        Debug.Print a.Range.Address
    Next
    
End Sub

ポイントは、「.Range.Address」とするところです。

シート内に複数のハイパーリンクを設定しました。

複数のハイパーリンクを設定

シート内に複数のハイパーリンクを設定

では、実行してみます。

ハイパーリンクのセル範囲を取得

ハイパーリンクのセル範囲を取得した結果

ハイパーリンクのセル範囲を取得できました。

VBAでハイパーリンクを開く

ちなみに、VBAでハイパーリンクを開くこともできます。

クリックだけではなくて、VBAコードからもハイパーリンクを開けるということです。

Hyperlinks(1).Followを使う

VBAで、ハイパーリンクを開くには、「Hyperlinks(1).Follow」を使います。

入力の仕方は、

「セル範囲.Hyperlinks(1).Follow」

というように、入力します。

VBAでハイパーリンクを開く

では、VBAでハイパーリンクを開いてみます。

Sub TEST13()
    
    'ハイパーリンクを開く
    ActiveSheet.Cells(1, 1).Hyperlinks(1).Follow
    
End Sub

別ブックへの、ハイパーリンクを設定したセルを用意しました。

ハイパーリンクが設定されているセル

ハイパーリンクが設定されているセルを用意

では、実行してみます。

VBAでハイパーリンクを開く

VBAでハイパーリンクを実行した結果

ハイパーリンクが実行されて、自動的に別ブックが開かれました。

こんな感じで、VBAからハイパーリンクを開くこともできます。

おわりに

この記事では、ハイパーリンクの設定と取得について、ご紹介しました。

ハイパーリンクの設定には、「Hyperlinks.Add」を使います。

反対に、ハイパーリンクの値を取得するには、「Hyperlinks」を使います。

ハイパーリンクの設定を手動ですると、結構、面倒だったりするので、VBAを使うと効率化できます。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す