• ベストアンサー

ファイルへのハイパーリンクでフォルダを開けたい

excelで とあるファイルへのハイパーリンクがされているセルで、 そのファイルが保管されているフォルダを開けれるようにしたいのですが、何かいい方法はないでしょうか? よろしくお願いします。

  • puyopa
  • お礼率87% (459/525)

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答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://okwave.jp/qa/q3675397.html のご回答を丸々使わせていただきました。

puyopa
質問者

お礼

回答ありがとうございました。 VBAをとてもよく理解されているみたいで、大変うらやましいです。 正直、すぐには理解できそうもありませんが、いずれは なんとか理解して役立たせて頂きます。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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も場合による。 もしこんな風なことなら、こんな手の込んだことは初心者は、やめるべきです。 ーーー それに質問ではしたいこと(意図)がはっきりしないし、御礼で補足後でもまだはっきりわからない。

puyopa
質問者

お礼

回答ありがとうございました。 おっしゃる通り、初心者ですので、すぐには使いこなせそうにありません。 皆さん、すばらしい知識をどのように習得されたのか・・とため息が出るぐらいにうらやましいです。 今後理解を深めて生きたいと思います。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答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))))

puyopa
質問者

お礼

ありがとうございました。 今は明確に理解できておりませんが、ぜひ使ってみて、理解させていただきます。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

挿入ーハイパーリンクーハイパーリンクの挿入の操作で、普通はファイル名までを指定します。さらに望みならそれ以下のレベルのシートなども指定できます。 逆に(ファイルの上のレベルの)フォルダのレベルで指定を止めておけば、質問のようになるのでは。 ただしクリックしてもファルダのレベルまでしか表示されず、ファイルはアイコン表示で、実際はその先の選択(ファイル指定)をしないと役に立たないでしょうがそれは覚悟の上で。

puyopa
質問者

お礼

説明不足ですみません。 既設のファイルまでのハイパーリンクを編集せずに、そこからフォルダを開くという質問です。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

ふつーに右クリックして「ハイパーリンク(の挿入)」から,目的のフォルダを選んでハイパーリンクを埋めてやればOKです。

puyopa
質問者

お礼

説明不足ですみません。 既設のハイパーリンクを編集せずに、そこからフォルダを開くという質問です。

関連するQ&A

  • 大量のフォルダへのハイパーリンクを簡単に貼りたい

    サーバにあるフォルダの中にサブフォルダが大量にあります。 (例としてに1~500という名前で500個) Excelにはすでに1~500の名前を入れてあるので、この1~500にハイパーリンクを貼って、セルをクリックするとサーバのフォルダを開くようにしたいです。(例:1をクリックすると1のフォルダが開くようにしたいのです) 一つ一つハイパーリンクを貼るのは手間なので簡単な方法でやりたいです。 一番簡単な方法はどのような方法でしょうか。 方法が書いてあるURLでも良いので教えてください。 お願いいたします。

  • EXCELのハイパーリンク

    EXCELのハイパーリンクについて教えて下さい。 EXCELにて700件程のハイパーリンクを作成しようと考えていますが数が多いため1件ずつハイパーリンク先を設定するには多くの時間と労力を要しますのであらかじめローカルフォルダ名とファイル拡張子を入力しておき、ファイル名だけを入力すればハイパーリンクを自動設定する方法はないでしょうか? お手数ですがお知恵をお貸し下さい。宜しくお願いします。 例) ・セルA1にローカルフォルダ名又はURLの一部 ・セルB1にファイル名又はURLの一部 ・セルC1にファイル拡張子又はURLの一部 これらを結合(A1&B1&C1)したハイパーリンク先をセルD1に表示すると共にセルD1をローカルフォルダ内のファイル又はサイトを自動的にハイパーリンク設定させる。

  • ハイパーリンクで前回値をひきつぐ方法

    初心者です。 マクロはわからないので、「CTRL+K」で出した「ハイパーリンクの挿入」画面の操作を教えてください。 エクセル表で、大量のセルに別々のハイパーリンクを貼る作業中です。 関連するPDFがあるフォルダにそれぞれ飛ばしています。 その目的フォルダが深い階層にあって、「ハイパーリンクの挿入」画面で辿るのが大変です。 なのに、次のセルの「ハイパーリンクの挿入」で、また初め(エクセル表がある場所)から辿らないといけません。 「ハイパーリンクの挿入」で前回の状態をひきつぐ方法はないでしょうか。 関係資料が入っているフォルダまでとび、どんな資料ファイルがそろっているかわかるようにするのが目的です。 なので、ハイパーリンク先はファイルではなくフォルダです。 よろしくお願いいたします。

  • メールでのフォルダのハイパーリンクの張り方を教えてください

    メール上でサーバ内にあるフォルダへのハイパーリンクの方法を調べています。ファイルへのハイパーリンクの張り方知っているのですがフォルダへのハイパーリンクの方法がわかりません。ご存知の方教えてください。

  • ハイパーリンクをフォルダーにする方法

    Word・Excelではハイパーリンクを設定できますが、ファイルに対してのみリンクを張ることができます(もちろん、本来はURLを指定するのでしょうけれど)。 これを、フォルダーにリンクできないでしょうか? つまり、マイドキュメントのフォルダーにハイパーリンクを設定して、クリックするとマイドキュメントフォルダーが開くというものです。 どなたか、教えていただければ幸いです。

  • Excelのシートから 1000個ほどのフォルダに ハイパーリンクをつけたい

    Excelのシートから 1000個ほどのフォルダに ハイパーリンクをつけたいのですが、効率の良い方法はないでしょうか 現在の手順は、以下の通りです 1.)対象フォルダ名をコピー 2.)セルを右クリック⇒ハイパーリンクの編集 3.)最近使ったファイルのアドレス履歴から>c:\データ\一覧.xls を選択 [一覧.xls]部分の替りにコピーしたフォルダ名を貼付け⇒[OK] 実際にクリックして、リンクの確認するまで約1分かかっています (1)セルの表示を変えずに、ハイパーリンクだけを一括で編集⇒シートに結合(貼付け)する方法はありますか (2)マクロを含め、何か効率の良い解決策があれば教えて下さい (3)似たシートを作成した経験のある方は、時間短縮のできそうなアドバイスをお願いします

  • ExcelVBAでフォルダへのハイパーリンクを

    Excelにファイルサーバーに置いてあるフォルダ名一覧があるのですが、このフォルダ名をクリックしたら実際にフォルダが開くようにハイパーリンクをしたいと思います。 (例:フォルダは\\serv1\aの中に名前「f1、f2,f3・・」で存在します。 またExcelにはA1にf1、A2にf2、A3にf3・・と記載されています。 A1をクリックするとf1のフォルダが開く・・というようにしたいです。 ちなみに空白のセルには何も入力したくありません。) VBAを使わずになんとかなるならそれでもOKなのですが、VBAを使うのであればどのようにすればよいでしょうか。 VBAはほとんど使ったことがないので、すみませんがお願いいたします。

  • ハイパーリンクについて

    Excel2003を使っています。 図のように名前がリンク先というフォルダの中に Aファイル、Bファイル、Cファイル、ABCファイル の4つのファイルがあります。 この中のABCファイルのシート、セルにハイパーリンクを使い Aファイル、Bファイル、Cファイルそれぞれをダイレクトに 開けるようにしました。<図の左上> このABCファイルをよく使うので、リンク先フォルダから出し、 デスクトップで使えるようにしたところ、"指定されたファイルは開くことができません"の エラー表示がでました。調べてみるとフォルダから出したことで ハイパーリンクが変更されてしまっています。 リンク先フォルダから出してもハイパーリンクが機能できる方法はあるのでしょうか? それともハイパーリンク先を再度指定入力しなければならないのでしょうか? おわかりの方、よろしくお願いします。

  • Outlookのフォルダへのハイパーリンク

    エクセルで,Outlookの指定したメールフォルダへのハイパーリンクを設定する方法を教えてください. よろしくお願いいたします.

  • エクセルのハイパーリンクでフォルダー指定

    エクセルにハイパーリンクをさせたくて指定したフォルダーに「#」という文字が入っているせいかリンクができません。 フォルダーやファイルに制限とかあるのでしょうか?

専門家に質問してみよう