[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『検索後のセルへのハイパーリンク』(猫田)
『フォルダ内のエクセルファイルを開かずにファイル』というタイトルで検索後に、
ブックではなく、セルにリンクさせる方法を教えて下さい。
'ハイパーリンクセット
For Each c In sh2.Range("A2", sh2.Range("A" & Rows.Count).End(xlUp)) sh2.Hyperlinks.Add Anchor:=c, Address:=c.Value, TextToDisplay:=c.Value Next sh2.Select Application.ScreenUpdating = True
< 使用 Excel:Excel2007、使用 OS:Windows7 >
(γ) 2015/05/21(木) 21:32
参照スレッドがあるなら、そのURLくらい書くのが常識だと思う。 それを読んでいないのでわからない。 自分なりの設定で回答する。 参考にならなければ、スキップして。
【前提】 A列 B列 C列 1 D:\test.xlsx Sheet1 B1
のように、A1にハイパーリンクが挿入されており、 その右のセルに、シート名と、セルアドレス があるという前提で書きます。
【対応例】 ・ハイパーリンクで直接、他のブックのシートやセルを指定できないようなので、 イベントプロシージャを援用します。
・ハイパーリンクがあるシートのシートモジュールに以下を記入して下さい。 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim myBook As String Dim mySheet As String Dim myCell As String
myBook = Dir(Target.address) mySheet = Target.Range.Offset(0, 1).Value myCell = Target.Range.Offset(0, 2).Value
Application.Goto Workbooks(myBook).Worksheets(mySheet).Range(myCell) End Sub
これで、ハイパーリンクをクリックすると、 ブックが開き、指定したセルに飛ぶはずです。
(γ) 2015/05/21(木) 23:01
コードコピーしました、エラーになりました。
じゃなくて、
確認作業(デバッグ)は あなた がして下さい。
そのためには
・コードの意味を理解する
・どの行でエラーになるのか確認する
・そのとき、変数名は想定したものになっているのか確認する
ことが必要です。
そのうえで、それでも解決しなければ、
上記の情報を提示して、コメントを求めてください。
(γ) 2015/05/22(金) 06:38
失礼します。 参照されたのがβが回答したコードだと思いますので。
その前に、γさん指摘の通り、質問の前に、自分で確認できるところがたくさんあります。 インデックスエラーですから、黄色く光っていたコードは
Application.Goto Workbooks(myBook).Worksheets(mySheet).Range(myCell)
だと思いますが、この黄色く光ったコードの myBook や mySheet や myCell にマウスを当てると その内容がポップアップで表示されます。表示された値が、(猫田)さんが意図したものになっているのかどうか。 もし、意図通りでないとすれば、その変数の元ネタであるセルの値が意図通りではないということですから。
で、本題です。 参照されたスレでは、ブック参照のみでよかったのですが、セルに飛ばすなら
Address:=○○○,SubAddress:="Sheet2!B10" といったように記述すればよろしいかと。 もちろん、"Sheet2!B10" といった文字列は変数から与えることになりますが。
(β) 2015/05/22(金) 07:43
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim myBook As String Dim mySheet As String Dim myCell As String myBook = Dir(Target.Address) mySheet = Target.Range.Offset(0, 2).Value myCell = Target.Range.Offset(0, 3).Value Application.Goto Workbooks(myBook).Worksheets(mySheet).Range(myCell) End Sub 急に仕事で必要となり、素人な私が作るはめとなり大変に困ってしまいましたが、これを機に がんばっていきたいと思いますので、また機会があればよろしくお願いいたします。 (猫田) 2015/05/22(金) 20:11
βさん ご指摘ありがとうございます。 馬脚を顕すというのは正にこのことか、ですね。 「ブックマーク」というボタンがあったのですね。 これを使うとシート、セルにもリンクが張れるのですね。
普段余り使わないので、(たぶん、昔は使っていたのだろうと思う) 適当にファイル名を[]で囲ってシートを追加したNGだったので 諦めていました。 # 普通に考えて、これができなかったら困りますわね。
ただ、イベントプロシージャを使う場面があるとすると、 それは、指定したセルを左上に持って行く場合ですかね。 Application.Goto の第二引数をTrueにすればよいです。
ということで、 質問者さまへ。
ご自身でのデバッグご苦労様でした。
私のでも動きますが、やはりβさんの手法を使ったほうが 自然だと思いますので、ご一考願います。 どうも失礼しました。
(γ) 2015/05/22(金) 21:23
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.