ハイパーリンクの設定
このページではHyperlinks.Addメソッドについて紹介しています。
Hyperlinks.Addメソッドを活用して、複数のセルのパスに対して一括でハイパーリンクを設定する方法について「VBAで複数セルにハイパーリンクを設定する」で紹介していますのでご参照ください。
Hyperlinks.Addメソッド
VBAでセルやオートシェイプなどにハイパーリンクを設定する場合、HyperlinksコレクションのAddメソッドを使います。
Hyperlinksコレクションは親クラスがWorksheetオブジェクトかRangeオブジェクトになります。通常はWorksheetオブジェクトの方が一般的です。その場合、ワークシートに含まれているハイパーリンク全てをHyperlinksコレクションで管理しています。各ハイパーリンクはHyperlinkオブジェクトになります。
Addメソッドの引数にURLやファイルパスなどを指定します。
URLが間違っていてもAddメソッドはエラーにはなりませんが、そのセルをクリックしても当然正しく動作しません。
構文
Hyperlinks.Addメソッドは親オブジェクトがWorksheetオブジェクトの場合とRangeオブジェクトの場合の2通りがあります。
1. Worksheetに対するハイパーリンク構文
1 |
Function Worksheet.Hyperlinks.Add(Anchor As Object, Address As String, [SubAddress], [ScreenTip], [TextToDisplay]) As Hyperlink |
2. Rangeオブジェクトに対するハイパーリンク構文
1 |
Function Range.Hyperlinks.Add(Anchor As Object, Address As String, [SubAddress], [ScreenTip], [TextToDisplay]) As Hyperlink |
Worksheet、 Range |
Hyperlinksコレクションの親オブジェクトにはWorksheetオブジェクトまたはRangeオブジェクトを指定します。通常はActiveSheetなどのワークシートを指定する方が多いと思われます。 |
Anchor | ハイパーリンクを設定する個所をセルのRangeオブジェクト、または、オートシェイプのShapeオブジェクトを指定します。 |
Address | 接続先のURLやファイルパスやメールアドレスなどのアドレスを文字列で指定します。SubAddressを指定する場合は空文字列の””を指定します。 |
SubAddress | 省略可。ハイパーリンク先のURLのWebページ内にあるブックマークやワークシートのジャンプ先のセルを指定します。 |
ScreenTip | 省略可。ハイパーリンク上にマウスカーソルを置いたときに表示するヒントを指定します。 |
TextToDisplay | 省略可。ハイパーリンクに表示される文字列を指定します。セルの場合のみ有効です。オートシェイプの場合は無視されます。 |
Hyperlink | 戻り値としてHyperlinks.Addで追加したハイパーリンクが返されます。この時点でHyperlinksコレクションにも追加されていることになります。 |
サンプルコード
A1セルと、事前に作成済みのオートシェイプに対してハイパーリンクを設定するサンプルです。
セルの方は戻り値を取得する書き方で、オートシェイプの方はWith構文での書き方です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub HyperlinksAddTest() Dim oHyperLink As Hyperlink '// セルへのハイパーリンク設定 Set oHyperLink = ActiveSheet.Range("A1").Hyperlinks.Add( _ Anchor:=Range("A1"), _ Address:="https://google.co.jp/", _ ScreenTip:="g", _ TextToDisplay:="Google") '// オートシェイプへのハイパーリンク設定 ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).Select With ActiveSheet.Hyperlinks .Add Anchor:=Selection.ShapeRange.Item(1), _ Address:="https://google.co.jp/", _ ScreenTip:="g", _ TextToDisplay:="Google" End With End Sub |
実行結果