ハイパーリンクを挿入してジャンプ先にブックを指定する
別のブックのSheet1のA1へ移動するリンクを作ります。
実行前に確認
- A1を上書きします。リンク先ファイルの移動や名前変更でリンクが切れます。
1サンプルコード
Sub Example1132()
Dim ws As Worksheet
Dim p As Variant
Set ws = ThisWorkbook.Worksheets("Sheet1")
If MsgBox("A1の内容とリンクを書き換えます。続けますか?", vbYesNo + vbExclamation) <> vbYes Then Exit Sub
p = Application.GetOpenFilename("Excelブック (*.xlsx),*.xlsx")
If VarType(p) = vbBoolean Then Exit Sub
ws.Hyperlinks.Add Anchor:=ws.Range("A1"), Address:=CStr(p), _
SubAddress:="'Sheet1'!A1", TextToDisplay:="別ブックを開く"
End Sub図で見る操作の流れ
イメージ図コードに沿った概念図です。実際の画面や実行結果ではありません。
手動:同意して選ぶ
A1の上書きに同意し、Sheet1のある.xlsxを選択
マクロ:リンクを作成
Sheet1のA1へ「別ブックを開く」を表示
手動:リンクを開く
クリックすると選択したブックのSheet1!A1へ移動
「いいえ」またはファイル選択のキャンセルで終了。ファイルを選ぶだけでは開きません。移動・改名するとリンク切れになります。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
練習用のブックを.xlsm形式で保存し、Sheet1という名前のシートを用意します。別途、Sheet1のある.xlsxファイルを保存しておきます。A1を空けます。
- 2
Alt+F11でVBEを開き、[挿入]→[標準モジュール]へコードを貼り付けます。
- 3
選択画面でリンク先ファイルを選びます。SubAddressは相手ブックのシート名とセルです。
- 4
マクロ内にカーソルを置いてF5で実行します。A1のリンクをクリックすると指定ブックを開きます。