第95回.ハイパーリンク(Hyperlink)

VBAでハイパーリンク(Hyperlink)を追加したり削除したりする場合を解説します。
ハイパーリンクは、Hyperlinkオブジェクトです、
そして、Hyperlinkオブジェクトの集まりであるコレクションがHyperlinksコレクションになります。
Hyperlinksは、Hyperlinkのコレクションです。
Hyperlinks(1)は、Hyperlinkオブジェクトです。
簡単に言えば、シートには複数のハイパーリンクが存在します、これがHyperlinksコレクション。
1つのハイパーリンクを特定した時、それがHyperlinkオブジェクトになります。
Hyperlinksコレクション
| メソッド | Add | 指定された範囲または図形にハイパーリンクを追加します。 |
| Delete | オブジェクトを削除します。 | |
| プロパティ | Application | 対象となるオブジェクトが指定されない場合は、Excel アプリケーション (Application オブジェクト) を返します。 対象となるオブジェクトが指定された場合は、指定されたオブジェクトを作成した Application オブジェクトを返します。 OLE オートメーションを使っていて、オブジェクトのアプリケーションにアクセスするときなどに、このプロパティを使います。 値の取得のみ可能です。 |
| Count | コレクションに含まれるオブジェクトの数を表す長整数型 (Long) の値を返します。 | |
| Creator | 現在のオブジェクトが作成されたアプリケーションを示す 32 ビットの整数を取得します。 値の取得のみ可能です。長整数型 (Long) の値を使用します。 |
|
| Item | コレクションから単一のオブジェクトを返します。 | |
| Parent | 指定されたオブジェクトの親オブジェクトを取得します。値の取得のみ可能です。 |
セルにハイパーリンクを追加する場合は、Addメソッドを使います。
| Anchor | ハイパーリンクのアンカーを指定します。 Range オブジェクトまたは Shape オブジェクトを指定します。 |
| Address | ハイパーリンクのアドレスを指定します。 |
| SubAddress | ハイパーリンクのサブアドレスを指定します。 |
| ScreenTip | ハイパーリンク上をマウス ポインターで指した場合に表示されるヒントを指定します。 |
| TextToDisplay | ハイパーリンクで表示されるテキストを指定します。 |
Hyperlinkオブジェクト
| メソッド | AddToFavorites | ブックまたはハイパーリンクへのショートカットを "お気に入り" フォルダーに追加します。 |
| CreateNewDocument | 指定したハイパーリンクにリンクされた新しい文書を作成します。 | |
| Delete | オブジェクトを削除します。 | |
| Follow | 既にダウンロードしてある場合、キャッシュに格納されたファイルを表示します。 ダウンロードしていない場合、ハイパーリンク先にある目的のファイルをダウンロードし、適切なアプリケーションで表示します。 |
|
| プロパティ | Address | 対象ドキュメントのアドレスを示す文字列型 (String) の値を取得、または設定します。 |
| Application | 対象となるオブジェクトが指定されない場合は、Excel アプリケーション (Application オブジェクト) を返します。 対象となるオブジェクトが指定された場合は、指定されたオブジェクトを作成した Application オブジェクトを返します。 OLE オートメーションを使っていて、オブジェクトのアプリケーションにアクセスするときなどに、このプロパティを使います。 値の取得のみ可能です。 |
|
| Creator | 現在のオブジェクトが作成されたアプリケーションを示す 32 ビットの整数を取得します。 値の取得のみ可能です。 長整数型 (Long) の値を使用します。 |
|
| EmailSubject | 指定されたハイパーリンクのリンク先が電子メールの場合、メールの件名を表す文字列を設定します。 件名はハイパーリンクのアドレスに追加されます。 値の取得および設定が可能です。 文字列型 (String) の値を使用します。 |
|
| Name | オブジェクトの名前を表す文字列型 (String) の値を返します。 | |
| Parent | 指定されたオブジェクトの親オブジェクトを取得します。 値の取得のみ可能です。 |
|
| Range | 指定されたハイパーリンクが割り当てられている範囲を表す Range オブジェクトを取得します。 | |
| ScreenTip | 指定されたハイパーリンクにヒントを設定します。 値の取得および設定が可能です。 文字列型 (String) の値を使用します。 |
|
| Shape | 指定されたハイパーリンクに結合されている図形を表す Shape オブジェクトを取得します。 | |
| SubAddress | 指定したハイパーリンク先のドキュメント内の特定の位置を取得または設定します。 値の取得および設定が可能です。 文字列型 (String) の値を使用します。 |
|
| TextToDisplay | 指定されたハイパーリンクに表示テキストを設定します。 既定値はハイパーリンクのアドレスです。 値の取得および設定が可能です。 文字列型 (String) の値を使用します。 |
|
| Type | HTML フレームの場所を表す長整数型 (Long) の値を返します。 MsoHyperlinkType クラスの定数を使用します。 |
ハイパーリンクの追加
WEBページやファイルの場合
ActiveSheet.Hyperlinks.Add Anchor:=セル, _
Address:="URL等/ファイルのフルパス", _
TextToDisplay:="表示名"
同一ブック内の他シートの場合
ActiveSheet.Hyperlinks.Add Anchor:=セル, _
Address:="", _
SubAddress:="'シート名'!A1", _
TextToDisplay:="表示名"
※シート名にシングルクォート(')を含む場合は、連続シングルクォート('')に置換する必要があります。
他ブックのシートの場合
ActiveSheet.Hyperlinks.Add Anchor:=セル, _
Address:="ブックのフルパス", _
SubAddress:="'シート名'!A1", _
TextToDisplay:="表示名"
ハイパーリンク追加時の注意点
これが無いと、シート名に空白や記号があると正しくハイパーリンクが設定されません。
「セル」には、Rangeオブジェクトを指定してください。
具体的には、Range("A1")、Cells(1, 1)等で指定します。
ハイパーリンクの制限について
・通常の方法では、#を含むファイルパスはハイパーリンクを作成できません。
VBA100本ノック 26本目:ファイル一覧作成
ハイパーリンクの削除
セル.Hyperlinks.Delete
セルはRangeオブジェクトを指定
複数セルの範囲を指定できます。
シート.Hyperlinks.Delete
シートはWorkSheetオブジェクトを指定します。
既に設定されているハイパーリンクの扱い方
With Cells(1, 1)
.Offset(0, 1) = .Hyperlinks(1).Address
End
With
Hyperlinks(1)
これが解りづらいのですが、
Rangeオブジェクトはコレクションでもあります。
Hyperlinksコレクションの指定になっているので、要素の特定が必要になっています。
が、しかし、
当然先頭要素しかありえないので、ここでは常に(1)になります。
With ActiveSheet.Shapes("四角形 1")
.TopLeftCell.Offset(0, 1) =
.Hyperlink.Address
End With
こちらは、Shapeオブジェクト内のHyperlinkオブジェクトです。
以下も参考にして下さい。
ユーザー定義関数でハイパーリンクのURLを取得
練習問題26(全シート処理とハイパーリンク)
同じテーマ「マクロVBA入門」の記事
第92回.名前定義(Names)
第93回.ピボットテーブル(PivotTable)
第94回.コメント(Comment)
第95回.ハイパーリンク(Hyperlink)
第96回.グラフ(Chart)
第97回.図形オートシェイプ(Shape)
第136回.フォームコントロール
第137回.ActiveXコントロール
第98回.Findメソッド(Find,FindNext,FindPrevious)
第99回.Replaceメソッド(置換)
第132回.その他のExcel機能(グループ化、重複の削除、オートフィル等)
新着記事NEW ・・・新着記事一覧を見る
最長連続出現数(ランレングス)の算出|エクセル練習問題(2025-11-15)
SQL基礎問題11:連続期間の開始月と終了月を抽出|SQL入門(2025-11-14)
セル数式における「再帰」の必要性|エクセル雑感(2025-11-10)
掛け算(*)を使わない掛け算|足し算(+)を使わない足し算|エクセル関数応用(2025-11-10)
配列を自在に回転させる数式|エクセル関数応用(2025-11-09)
非正規化(カンマ区切り)の結合と集計:最適な手法は?|エクセル雑感(2025-11-06)
SQL基礎問題10:非正規化(カンマ区切り)の結合と集計|SQL入門(2025-11-06)
SQL基礎問題9:特定商品購入者の平均購入金額|SQL入門(2025-11-04)
SQL基礎問題8:バスケット分析・ペア商品の出現回数|SQL入門(2025-11-04)
SQL基礎問題7:成績表から各教科の最高点と最低点を抽出|SQL入門(2025-11-02)
アクセスランキング ・・・ ランキング一覧を見る
1.生成AIパスポート試験 練習問題(四肢択一式)|生成AI活用研究
2.最終行の取得(End,Rows.Count)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.繰り返し処理(For Next)|VBA入門
6.RangeとCellsの使い方|VBA入門
7.FILTER関数(範囲をフィルター処理)|エクセル入門
8.日本の祝日一覧|Excelリファレンス
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.セルのクリア(Clear,ClearContents)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.
