- 締切済み
エクセル ハイパーリンク 自動
(1)エクセル ファイル名 顧客管理 B3以降に名前を入力していきます (2)エクセル ファイル名 B3以降の名前と同じものを作ります B3に名前を入力した時自動的にハイパーリンクで(2)のファイルにリンクする ようにしたいのですがどうすればいいでしょうか? (1)のファイルはデスクトップに置いておきます (2)のファイルは多くなる為、ドキュメントの個人管理ファイルの中に入れていきます PCウインドウズ7 エクセル2010です
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- misatoanna
- ベストアンサー率58% (528/896)
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
- misatoanna
- ベストアンサー率58% (528/896)
名前を入力した時、だけでよいのでしょうか。 それとも、ファイル名をクリックすると常にそのファイルが開くようにするのでしょうか。 以下は、ご質問の内容そのまま、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
- aokii
- ベストアンサー率23% (5210/22063)
済みません。ハイパーリンクで(2)のファイルにリンクするという意味が不明です。具体的に、どこのセルをどうしたら、どうなってほしいのか、記入して頂ければ幸いです。
お礼
返事ありがとうございます 例えば B3を鈴木と打つ そこをクリックすると ドキュメント内の鈴木ファイルを開く ようにしたいのです 説明がへたで申し訳ないです
お礼
返事ありがとうございます 例えば 鈴木 が存在するとして ドキュメントの中に管理フォルダを作成 管理フォルダの中に鈴木(エクセル名)のエクセルを作成 顧客管理の部分のB3以降の空いてる欄に鈴木と入力する 入力されるとドキュメント内の管理ファイルの中の鈴木(エクセル名) を自動的にリンクし鈴木の名前があるところをクリックすると ファイルが開くようにしたいのです 説明がへたくそで申し訳ないです