• ベストアンサー

エクセルマクロ:別のブックから該当するデータをコピー

Book1のSheet1、A列に日付、B列に対応するデータがあります。 Book2のSheet1A1セルに入力された日付と一致するBook1Sheet1B列の値を、Book2のB1セルに値貼り付けしたいのですが、どのように記述すればよろしいでしょうか。 宜しくお願いいたします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

以下のマクロをBook2/Sheet1のシート名タブ右クリック→「コードの表示」で開く画面に貼り付け、シートに戻りA1に日付を入力してみて下さい Private Sub Worksheet_Change(ByVal Target As Range) Dim ret  If Target.Address = "$A$1" Then   Set ret = Workbooks("Book1.xls").Sheets("Sheet1").Range("A:A") _      .Find(ActiveSheet.Range("A1").Value)   If ret Is Nothing Then    ActiveSheet.Range("B1").Value = "該当なし"   Else    ActiveSheet.Range("B1").Value = ret.Offset(0, 1).Value   End If  End If End Sub Hitする日付が複数あったら、最初の値をB1に格納しています。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#01です。 書き忘れてました。これだけならVLOOKUP関数で済んでしまう内容ですが、なぜVLOOKUP関数ではダメなのですか? BOOK1、BOOK2共に開いていればブックをまたがっても参照はできますよ

gucchi-you
質問者

お礼

ありがとうございます、試してみます。 >これだけならVLOOKUP関数で済んでしまう内容ですが、なぜVLOOKUP関数ではダメなのですか? まさにご指摘の通り今はLookup関数で処理しているのですが、参照ファイルが非常に重く、かつ大量に処理する必要があるため、再計算を手動にしたままマクロで処理すればひょっとしてして作動時間が節約できるのでは、と思い質問いたしました。

関連するQ&A