第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 ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.ブック・シートの選択(Select,Activate)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。