• ベストアンサー

Excelでブックを検索し表示する方法

Excelで、複数のブックをひとつのフォルダに入れています。 この中のSTRAT.xlsのSheet1に通し番号とファイル名(*.xls)を記入して管理しています。 このSTART.xlsにテキストボックスとボタンを挿入して、管理番号を入力しボタンを押すとSheet1で通し番号(管理番号)と対応したブックが開くマクロを作りたいのですがどうすればいいのでしょうか? いろいろ調べたのですが、ブックやシート内の値の検索方法は、いろいろな方が質問しておられるのですが、私のやりたいことが見当たりません。 初歩的なことで手間取っているのかも知れませんが、ドンドン深みに嵌まってるような気がして書き込みさせていただきました。 ご存知の方、ご教示お願いいたします。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

Sheet1 のA列が通し番号、B列がファイル名(*.xls)として こんな感じでしょうか? Private Sub CommandButton1_Click() Dim fr On Error Resume Next  ActiveCell.Activate  With Worksheets("Sheet1")    Set fr = .Range("A1:A65536").Find(.TextBox1.Value, .Range("A1"), _           LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)    If Not fr Is Nothing Then      Workbooks.Open ThisWorkbook.Path & "\" & fr.Offset(0, 1).Value    End If  End With End Sub

father001
質問者

お礼

回答ありがとうございました。 ご教示いただいたとおりやって見事に出来上がりました。 どうしてもVlookUpを使わなければならないと思い込んでおりました。 今回はとても勉強になりました。 ありがとうございました。

その他の回答 (1)

  • myeyesonly
  • ベストアンサー率36% (3818/10368)
回答No.1

こんにちは。 通し番号とファイル名が1:1で横に並んでいるのなら、ボタンにマクロを埋め込み、 そのマクロでテキストボックスの内容を参照し、 通し番号のある列から検索して、アクティブにし、 横1のオフセット参照か、もしくは、段を取得して列番をひとつずらしたセルにあるデータ(ファイル名)を取得してオープンにする、 って事でいいと思います。 ファイルの数が10個までなら簡単なのですが、やっかいなのはファイルが10個以上ある場合で、 例えば、1.xls で検索すると、11.xls と 1.xls がひっかかってしまう点です。 こういうことを起こさないためには、検索を完全一致にするか、ファイル名が 一桁.xls の物に「0」をひとつくっつけて、01.xls みたくする方法が有効です。

father001
質問者

お礼

回答ありがとうございます。 ファイル名の件、とても勉強になりました。 頭にアルファベットをつけて保存知るようにしました。 本当にありがとうございました。