プロが教える店舗&オフィスのセキュリティ対策術

【やりたいこと】
①添付画像のA1をクリックすると、別BOOK「会員詳細フォルダ」の中の「101 山田.xlsx」が開くようにしたいです。
②また、実際は大きな表になるため、行を追加するごとに、A列にハイパーリンクの入力をするのは避けたいです。

【教えていただきたいこと】
・ハイパーリンクのウィザードをつかってやりたいことが実現可能でしょうか?
・実現可能な場合、ハイパーリンクのアドレス欄に、どのように記載すればよいでしょうか?
・実現できない場合、他に方法はございますでしょうか?

以上、詳しい方ご教示いただけると幸いです。

「エクセルのハイパーリンクで別BOOKを開」の質問画像

A 回答 (3件)

こんばんは



ハイパーリンクのウィザードでは難しいと思いますが、HYPERLINK関数を利用すればほぼご希望に近いことは可能です。
開く対象のブックは、1行目の場合は「101_山田.xlsx」(_は半角スペース)で良いのでしょうか?
仮に、そうであるとするなら・・

C1セルに
=IF(B1="","",HYPERLINK("フォルダのパス\" & A1 & " " & B1 & ".xlsx","LINK"))
の関数式を入れて、下方にフィルコピーしておきます。
このC列のセルをクリックすれば、目的のファイルが開きます。
(A列ではない点だけが、ご質問とは異なります)
A列、B列の値を変えれば、自動的にリンク先も変わります。

※ "フォルダのパス\"  部分は、対象のブックがある固定のフォルダパスに「\」を付けたもの
※ A1 & " " & B1 & ".xlsx" 部分は、目的のブック名になるように調整してください。
    • good
    • 0
この回答へのお礼

ご解説有難うございました。
比較的簡単に、目的に近いことができましたので、今回BAとさせていただきます。

お礼日時:2022/10/27 19:34

#1です


一応、代替え案のダブルクリックシートイベントです
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rng As Range
Set rng = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
If Target.Count > 1 Then Exit Sub
If Intersect(Target, rng) Is Nothing Then Exit Sub
Dim wsh As Object, pth As String, fName As String
Set wsh = CreateObject("WScript.Shell")
pth = wsh.SpecialFolders("MyDocuments") & "\会員詳細フォルダ" & "\"
Set wsh = Nothing
fName = Target.Text & " " & Target.Offset(, 1).Text
If Dir(pth & fName & ".xlsx") <> "" Then
Cancel = True
Workbooks.Open pth & fName & ".xlsx"
End If
End Sub

当該シートのA列セルをダブルクリックすると
同じ行の A列のテキストとB列のテキストを繋げてファイル名を作り
(添付図では数字と文字の間に半角スペースがあるようなので入れています)
MyDocumentsの会員詳細フォルダ内の該当ブックを開きます
ファイルが存在しない場合、A列以外をダブルクリック、複数選択時などの場合は何も起こりません
    • good
    • 0
この回答へのお礼

Qchan1962

わかりやすいご解説、有り難うございました。

お礼日時:2022/10/27 19:32

こんばんは


・ハイパーリンクのウィザードをつかってやりたいことが実現可能でしょうか?
出来ると思いますが、②の条件を加えると出来ないと思います

・実現できない場合、他に方法はございますでしょうか?
マクロのシートイベントWorksheet_BeforeDoubleClickで実行すれば出来ると思います(他のトリガーでも可能です)

この場合、行の追加の心配やハイパーリンクは必要ありませんが
マクロについての基礎知識が必要になります
また、呼び出す側のブックをマクロ有効ブックに変更する必要があり、
使用(制限など)環境によっては出来ません(してはいけません)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!