- ベストアンサー
エクセルのマクロ
早速ですが (1)顧客一覧(ブック)があり (2)顧客データ(ブック)が各々あります。 (1)顧客一覧から各顧客データにハイパーリンクをして開けるようにしているのですがこれを 検索欄を作り数字を入れたらリンク先に飛ぶようにしたいのですがどうすればいいのか教えてください。 (出来れば式の意味を教えてもらえると助かります) コード 顧客名 100 A 101 B 102 C 検索欄を作り(たとえばA1セル)100と入力すると Aのブックを開く。 こんな感じです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 あまりマクロの必要性がないように思います。ただし、Webツールバーが立ち上がるのが、ちょっとうっとうしいです。 たとえば、こんな風にします。 A1 に、100 を入れます。 G1: (邪魔だから、どこかに置いておきます。) =VLOOKUP(A1,D2:E4,2) コード 顧客名 100 A 101 B 102 C (ただし、ブックは、検索用のブックと同じフォルダに入っていることが条件です。) B1: =IF(ISERROR(G1),"Err",HYPERLINK(G1&".xls",G1))
その他の回答 (1)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
すごいテキトーに作ったんですけど、こんな感じでしょうか? Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo Exception 'エラーがあったらExceptionに飛ばす Dim fileName As String '検索域であり、入力がある場合 If Target.Row = 8 And Target.Column = 1 And Trim(Target.Value) <> "" Then '検索対象になる表より、入力された文字に該当するファイル名を取得 fileName = CStr(Range("A1:B3").Find(What:=Target.Value, After:=Range("A1")).Offset(0, 1)) If Dir(fileName & ".xls") <> "" Then Application.Workbooks.Open (fileName & ".xls") Else MsgBox "ファイルがありません", vbOKOnly + vbExclamation End If End If Exit Sub '例外処理 Exception: MsgBox Err.Description End Sub
お礼
回答ありがとうございます。 参考になりました。
補足
回答頂きありがとうございます。 早速試したのですが、打ち込んでも「ファイルが ありません」となってしまいます。 (A8に打ち込めばいいんですよね?) 回答いただいた内容をみて自分で考えてみたのですが わかりません。 お手数ですがアドバイスいただけると助かります。
お礼
回答ありがとうございます。 なるほどマクロを使わなくても出来るのですね。 勉強になりました。