• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAで別ブックの条件検索)

エクセルVBAで別ブックの条件検索

このQ&Aのポイント
  • VBA初心者の方が、エクセルVBAを使って別のブックの条件検索を行いたい場合の解決方法を教えてください。
  • 検索条件シートで指定したブックとシートに対応するデータをVlookup関数を使って抽出し、出力先シートのセルに表示する方法を教えてください。
  • エラー438が出て実行できない場合の解決方法を教えてください。

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

「Select Case ブック」からエラーヵ所までは以下の様に修正するとよろしいかと思います。 Select Case ブック Case 1 Set wb = Workbooks("Book1.xlsm") wb.Activate Select Case シート Case 1 Set sh = wb.Worksheets(1) Case 2 Set sh = wb.Worksheets(2) Case Else MsgBox "・・・・・", vbExclamation, "nothing" End Select Case 2 Set wb = Workbooks("Book2.xlsm") wb.Activate Select Case シート Case 1 Set sh = wb.Worksheets(1) Case 2 Set sh = wb.Worksheets(2) Case Else MsgBox "・・・・・", vbExclamation, "nothing" End Select Case 3 Set wb = Workbooks("Book3.xlsm") wb.Activate Select Case シート Case 1 Set sh = wb.Worksheets(1) Case 2 Set sh = wb.Worksheets(2) Case Else MsgBox "・・・・・", vbExclamation, "nothing" End Select Case Else MsgBox "nothing", vbExclamation, "nothing" End Select Set set範囲 = sh.Range("A4:E42") '  ←エラー438

_mocomoco_
質問者

お礼

迅速な回答ありがとうございます。 回答の通り実行しました。デバッグはなくなりましたが、データのあるシートがActiveになり、 データはシートに抽出することができませんでした。

その他の回答 (1)

  • kybo
  • ベストアンサー率53% (349/647)
回答No.2

wb.Activate でご自身でアクティブにしているからでは?

_mocomoco_
質問者

お礼

すみません。わたしがアクティブにしていました。 やはりデータの抽出は上手くいきませんでした。 VlookupでなくFindを用いた方がよろしいのでしょうか? お手数お掛けして申し訳ございません。

関連するQ&A