ラベル ハイパーリンク の投稿を表示しています。 すべての投稿を表示
ラベル ハイパーリンク の投稿を表示しています。 すべての投稿を表示

VBA ハイパーリンクの設定



ハイパーリンクの挿入


VBAを使ってセルにハイパーリンクを挿入する方法です。
エクセル上だと[セル右クリック]→[ハイパーリンク(I)...]→[ハイパーリンクの挿入]・・・と同じ動作を再現します。


関数、メソッドなど
HyperlinksオブジェクトのAdd メソッドを使用します。

Hyperlinks.Add(Anchor, Address, SubAddress, ScreenTip, TextToDisplay)

AnchorとAddressは必須です。
Anchorとはハイパーリンクを設定する対象でセルやオブジェクトが入ります。
Addressは、そのままの意味で開く先のアドレスです。ワークブックやURLなどです。


サンプルコード
Sub hl()
    'セルA1にハイパーリンクを設定
    With ActiveSheet
            .Hyperlinks.Add Anchor:=.Range("a1"), _
            Address:="https://excwlvba.blogspot.jp/"
    End With
    
End Sub


解説
上記サンプルではアクティブシートにハイパーリンクの設定をしています。


○パラメーター
名前 必須/オプション 説明
Anchor 必須 ハイパーリンクのアンカーを指定
Range オブジェクトまたは Shape オブジェクトを指定
Address 必須 ハイパーリンクのアドレス
SubAddress オプション サブアドレス
(ブックの場合シートやセルなど)
ScreenTip オプション ハイパーリンク上をマウスポインターで指した場合に表示されるヒント
TextToDisplay オプション ハイパーリンクで表示されるテキスト



サンプルコード 2
Sub hl()
    'セルA1にハイパーリンクを設定
    With ActiveSheet
            .Hyperlinks.Add Anchor:=.Range("a1"), _
            Address:="https://excwlvba.blogspot.jp/", _
            ScreenTip:="マウスオーバーで表示される文字", _
            TextToDisplay:="セルに表示する文字"
    End With
    
End Sub


サンプルコード 3
Sub hl()
    '別のワークブックをリンク先として設定
    With ActiveSheet
            'セルA1にハイパーリンク挿入
            .Hyperlinks.Add Anchor:=.Range("a1"), _
            Address:="F:\test\book1.xlsx", _
            SubAddress:="Sheet2!A2", _
            TextToDisplay:="セルに表示する文字"
    End With
        
        'リンク先は[F:\test\]にある[book1.xlsx]
        'book1.xlsxのSheet2!A2をアクティブにし選択
        
End Sub



関連・類似ページ
ハイパーリンクを開く
ハイパーリンクを削除する

ハイパーリンクを開く Hyperlink.Followメソッド



オブジェクト.Hyperlink.Follow

オブジェクトにあるリンク先をそろぞれの既定のアプリケーションで表示するメソッドです。
オブジェクトにはセル、図形オブジェクト等を指定しますが予めExcel上でハイパーリンクの挿入をしていることが前提となります。

セルを指定した場合は
Range.Hyperlink(index).Follow
となります。
Rangeオブジェクト指定時はセル範囲に複数のハイパーリンクを含めることができるので、引数(index)に(1)や(2)などの番号を指定します。
セル範囲の左上が1で以降、行→列の順番にindex番号は振られます。
例えばハイパーリンクが一つだけのときは.Hyperlinks(1).Followのように表記します。
図形オブジェクト指定時には引数(index)は指定出来ません。(一つしか選択出来ないので)
代わりにShape(index)に番号を指定します。この番号は図形を作成した順番となります(Excel画面の左上の「名前ボックス」のところの末に表記されている{角丸四角形2)の末の数字と同じです
shape(index).Hyperlinks.Follow



Sub S_HLF1() 'この範囲選択で全てのセルにハイパーリンクが挿入されている場合は 'A1セルのリンクが開きます Worksheets(1).Range("A1:B2").Hyperlinks(1).Follow End Sub Sub S_HLF2() '図形に挿入されているハイパーリンクを開きます Worksheets(1).Shapes(1).Hyperlink.Follow NewWindow:=True End Sub


◯エラー
ハイパーリンクが挿入されていないセルやオブジェクトに対して[Hyperlink.Follow]のメソッドを実行すると
「実行時エラー '1004':
アプリケーション定義またはオブジェクト定義のエラーです。」
というエラーが表示されます。

また、存在しないオブジェクトを指定した場合は
「実行時エラー '2147024809 (80070057)':
指定したコレクションに対するインデックスが境界を超えています。」
というエラーが表示されます。


関連
ハイパーリンクを削除する[Hyperlinks.Delete]メソッド

VBA ハイパーリンクを削除する



ハイパーリンクの削除

VBAを使ってセルにハイパーリンクを削除する方法です。
エクセル上だと[セル右クリック]→[ハイパーリンクの削除(R)...]]・・・と同じ動作を再現します。



関数、メソッドなど
指定範囲.Hyperlinks.Delete
Hyperlinksオブジェクトのdeleteメソッドを使用します。
指定範囲.に削除する範囲のセルやWorksheetなどを選択します。


サンプルコード
Sub SampleHyperlinkDelete()
    '選択している範囲を削除する
    Selection.Hyperlinks.Delete

    'A1セルのリンクを削除する
    Range("A1").Hyperlinks.Delete

    'Sheet1の全てのリンクを削除する
    Worksheets("Sheet1").Hyperlinks.Delete

End Sub

注)一度消すと元に戻らないです。


関連・類似ページ
ハイパーリンクを設定する
ハイパーリンクを開く