← コード一覧へ戻る
実務ハイパーリンク

ハイパーリンクを挿入してジャンプ先にブックを指定する

別のブックの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

図で見る操作の流れ

イメージ図

コードに沿った概念図です。実際の画面や実行結果ではありません。

  1. 手動:同意して選ぶ

    A1の上書きに同意し、Sheet1のある.xlsxを選択

  2. マクロ:リンクを作成

    Sheet1のA1へ「別ブックを開く」を表示

  3. 手動:リンクを開く

    クリックすると選択したブックのSheet1!A1へ移動

「いいえ」またはファイル選択のキャンセルで終了。ファイルを選ぶだけでは開きません。移動・改名するとリンク切れになります。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    練習用のブックを.xlsm形式で保存し、Sheet1という名前のシートを用意します。別途、Sheet1のある.xlsxファイルを保存しておきます。A1を空けます。

  2. 2

    Alt+F11でVBEを開き、[挿入]→[標準モジュール]へコードを貼り付けます。

  3. 3

    選択画面でリンク先ファイルを選びます。SubAddressは相手ブックのシート名とセルです。

  4. 4

    マクロ内にカーソルを置いてF5で実行します。A1のリンクをクリックすると指定ブックを開きます。

使っている機能の公式ドキュメント(Microsoft Learn)