![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.4ベストアンサー
- 回答日時:
A列にハイパーリンクが埋め込まれていて
そのアドレスがフルパスで記述されているとしたら
例
C:\Documents and Settings\nicotinism\My Documents\are.txt
A列のセルのダブルクリックや右クリックでは諸々使いにくいと思い
隣のB列のセルをダブルクリックした時に現れるように考えました。
そのシートのイベントに
Private Function GetLinkAdr(Rng As Range) As String
Dim StrAdr As String
Application.Volatile
With Rng.Cells(1)
If .HasFormula Then
If InStr(.Formula, "=HYPERLINK") = 1 Then _
StrAdr = Split(.Formula, Chr(34))(1)
Else
If .Hyperlinks.Count > 0 Then _
StrAdr = .Hyperlinks(1).Address
End If
End With
GetLinkAdr = StrAdr
End Function
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim parentAddress As String
Dim oFso As Object
Dim f As Object
Dim linkAddress As String
If Target.Column <> 2 Then
Exit Sub
End If
Set oFso = CreateObject("scripting.filesystemobject")
linkAddress = GetLinkAdr(ActiveCell.Offset(0, -1))
If linkAddress = "" Then
Exit Sub
End If
Set f = oFso.getfile(linkAddress)
parentAddress = oFso.getParentFolderName(f)
CreateObject("shell.application").shellExecute parentAddress
Cancel = True
Set f = Nothing: Set oFso = Nothing
End Sub
なお、リンクアドレスの取得は
http://oshiete.goo.ne.jp/qa/3675397.html
のご回答を丸々使わせていただきました。
回答ありがとうございました。
VBAをとてもよく理解されているみたいで、大変うらやましいです。
正直、すぐには理解できそうもありませんが、いずれは なんとか理解して役立たせて頂きます。
No.5
- 回答日時:
#3です。
>既設のファイルまでのハイパーリンクを編集せずに
とはハイパーリンクの設定の操作をせずに、例えば関数を埋め込むなどのことか。
ファイルまでのハイパーリンクを設定してあるあるセルの状態で、ボタンでもクリックすると、ファイルでなく、1段上のレベルの
フォルダを開きたいということか。関数や操作でな難しいと思うがVBAの経験などあるのかな。無ければ無理では。
普通にクリックしたらファイルが開くのでそれ以外の途を考えないといけない。
ボタンでも設けて
Private Sub CommandButton1_Click()
Dim fl As String
f = Range("A1").Hyperlinks(1).Address
fl = Left(f, InStrRev(f, "\"))
MsgBox fl
Shell "C:\Windows\Explorer.exe " & fl, vbNormalFocus
End Sub
Hyperlinks(1).の1も場合による。
もしこんな風なことなら、こんな手の込んだことは初心者は、やめるべきです。
ーーー
それに質問ではしたいこと(意図)がはっきりしないし、御礼で補足後でもまだはっきりわからない。
回答ありがとうございました。
おっしゃる通り、初心者ですので、すぐには使いこなせそうにありません。
皆さん、すばらしい知識をどのように習得されたのか・・とため息が出るぐらいにうらやましいです。
今後理解を深めて生きたいと思います。
No.3
- 回答日時:
VBAなら容易だと思いますが、敢えて関数での実現にトライしてみました。
A1にハイパーリンクがあるとします。(ハイパーリンク関数によるハイパーリンクでは不可)
ここでは、ハイパーリンクの表示文字列と、ファイルパスは同じとします。
A2に下記の関数を入力します。4階層目までのパスに対応しているつもりです。(パス中の\が1~4個まで対応)
要するにファイルのパスの最後の\の左側を切り出して、フォルダーのハイパーリンクを生成するのに苦労してみたという事です。
CHOOSE関数でこんな事ができると知ったのが収穫でしょうか。
xl2010で試しています。ご参考まで。
=HYPERLINK(CHOOSE(LEN(A1)-LEN(SUBSTITUTE(A1,"\","")),LEFT(A1,FIND("\",A1,1)),LEFT(A1,FIND("\",A1,FIND("\",A1,1)+1)),LEFT(A1,FIND("\",A1,FIND("\",A1,FIND("\",A1,1)+1)+1)),LEFT(A1,FIND("\",A1,FIND("\",A1,FIND("\",A1,FIND("\",A1,1)+1)+1)+1))))
No.2
- 回答日時:
挿入ーハイパーリンクーハイパーリンクの挿入の操作で、普通はファイル名までを指定します。
さらに望みならそれ以下のレベルのシートなども指定できます。逆に(ファイルの上のレベルの)フォルダのレベルで指定を止めておけば、質問のようになるのでは。
ただしクリックしてもファルダのレベルまでしか表示されず、ファイルはアイコン表示で、実際はその先の選択(ファイル指定)をしないと役に立たないでしょうがそれは覚悟の上で。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBからExcelファイルを開くとき...
-
Accessのウインドウサイズの固定
-
ExcelVBA 文字コード変換
-
visual studioでフォームデザイ...
-
ファイルを開く時間測定のスク...
-
「エクセルファイルが開いてい...
-
VBAで色々な種類のファイルを開く
-
Wordのプロパティ・総ページ数...
-
excel マクロ PDF化の際のエラ...
-
FileDialog オブジェクトでファ...
-
タイムスタンプの更新の方法2
-
VBAでCSVファイルを読み込もう...
-
vbaサブフォルダーをワイルドカ...
-
ディレクトリ配下のファイル名...
-
VBAでフォルダ内のhtmlファイル...
-
ffftpでファイル取得が0バイト...
-
エクセルvbaでdocuworksprinter...
-
エクセルのプロパティーでセキ...
-
ファイルのアクセス回数について
-
エクセルで複数のコメントのサ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbs ブック共有を解除
-
vbaサブフォルダーをワイルドカ...
-
VBAでフォルダ内のhtmlファイル...
-
FileDialog オブジェクトでファ...
-
動かなくなってしまった古いVBA...
-
AccessからOLEオブジェクト型の...
-
サブフォルダ含むフォルダ内の...
-
VB6でUTF-8ファイルの読取りを
-
Accessのウインドウサイズの固定
-
「エクセルファイルが開いてい...
-
excel マクロ PDF化の際のエラ...
-
エクセルのVBAで開いている...
-
ffftpでファイル取得が0バイト...
-
Wordのプロパティ・総ページ数...
-
ファイルを開く時間測定のスク...
-
vbsでのアスタリスクとファイル...
-
タイムスタンプの更新の方法2
-
VB.net XMLの作成方法 Iniの代替
-
VBからExcelファイルを開くとき...
-
「AccessViolationException」...
おすすめ情報