• 締切済み

エクセル ハイパーリンク 自動

(1)エクセル ファイル名 顧客管理 B3以降に名前を入力していきます (2)エクセル ファイル名 B3以降の名前と同じものを作ります B3に名前を入力した時自動的にハイパーリンクで(2)のファイルにリンクする ようにしたいのですがどうすればいいでしょうか? (1)のファイルはデスクトップに置いておきます (2)のファイルは多くなる為、ドキュメントの個人管理ファイルの中に入れていきます PCウインドウズ7 エクセル2010です

みんなの回答

回答No.3

B列3行目以下のセルにファイル名(拡張子なし)を入力したとき、指定したフォルダ内に A)そのファイルがある場合   1.当該ファイルへのハイパーリンクを設定します。 B)そのファイルがない場合   1.その旨のメッセージを表示して新規作成・保存し、   2.新規ファイルへのハイパーリンクを設定します。 Private Sub Worksheet_Change(ByVal Target As Range)   Dim FPath As String, FName As String   FPath = "C:\aaaa\bbbb\cccc\" '← 管理ファイルのパス。   If Target.Column <> 2 Then Exit Sub   If Target.Row < 3 Then Exit Sub   If Target.Value = "" Then Exit Sub   FName = Dir$(FPath & Target.Value & ".xls*")   If FName = "" Then     MsgBox "入力された名前のファイルはありませんので、" _       & Chr(10) & "新規に作成して保存します。"     FName = Target.Value & ".xlsx"     Application.ScreenUpdating = False     Workbooks.Add     ActiveWorkbook.SaveAs Filename:=FPath & FName     ActiveWorkbook.Close     Application.ScreenUpdating = True   End If   ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:=FPath & FName End Sub

回答No.2

名前を入力した時、だけでよいのでしょうか。 それとも、ファイル名をクリックすると常にそのファイルが開くようにするのでしょうか。 以下は、ご質問の内容そのまま、B3に名前を入力した時だけ動作するようにしています。 シートタブの右クリックメニューにある"コードの表示"から開くウィンドウに以下を記述し、そのウィンドウを閉じます。 Private Sub Worksheet_Change(ByVal Target As Range)  Dim myPath As String  myPath = "C:\aaaa\bbbb\"  '← 実際の個人管理ファイルのパスに。  If Target.Address(0, 0) <> "B3" Then Exit Sub  Workbooks.Open myPath & Target.Value End Sub

jikkenn
質問者

お礼

返事ありがとうございます 例えば 鈴木 が存在するとして ドキュメントの中に管理フォルダを作成 管理フォルダの中に鈴木(エクセル名)のエクセルを作成 顧客管理の部分のB3以降の空いてる欄に鈴木と入力する 入力されるとドキュメント内の管理ファイルの中の鈴木(エクセル名) を自動的にリンクし鈴木の名前があるところをクリックすると ファイルが開くようにしたいのです 説明がへたくそで申し訳ないです

  • aokii
  • ベストアンサー率23% (5210/22063)
回答No.1

済みません。ハイパーリンクで(2)のファイルにリンクするという意味が不明です。具体的に、どこのセルをどうしたら、どうなってほしいのか、記入して頂ければ幸いです。

jikkenn
質問者

お礼

返事ありがとうございます 例えば B3を鈴木と打つ そこをクリックすると ドキュメント内の鈴木ファイルを開く ようにしたいのです 説明がへたで申し訳ないです