• 締切済み

エクセルVBAでリストの検索処理について

エクセルで以下の処理がしたいのですが分かりません。 初めての質問なので質問の仕方もご教示いただければ幸いです。 (1)sheet1のワードリストを読み込む (2)読み込んだリストを元に該当するワードがあるかをsheet2で検索し該当したレコードをsheet3にコピーする 例 【sheet1のワードリスト】 山本 木下 田中 【sheet2のレコード】 大塚,100,男,3000,0.5 木下,50,男,1000,0.2 田中,100,女,3000,0.5 森田,100,男,2000,0.5 田中,10,男,600,0.1 【sheet3のにコピーされたレコード】 木下,50,男,1000,0.2 田中,100,女,3000,0.5 田中,10,男,600,0.1 よろしくお願い致します。

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

シート1のワードリストをDictionaryオブジェクトに放り込んで、シート2を上から順に取得する。 取得されたデータがDictionaryに入っているかチェックをして、入っていたら シート3に書き出す。 >大塚,100,男,3000,0.5 これが1つのセルなのか、複数のセルなのかがわかりませんけどね。 ご参考まで。

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

お初です 「禁止事項」の「丸投げ・依頼」をよく読んでくださいね 上のような理由からサンプルです Sub test() Dim a As Variant Dim i As Integer, ii As Integer, iii As Integer For i = 1 To [sheet1!a65536].End(xlUp).Row For ii = 1 To [sheet2!a65536].End(xlUp).Row If Worksheets("sheet1").Cells(i, 1).Value = Worksheets("sheet2").Cells(ii, 1).Value Then iii = [sheet3!a65536].End(xlUp).Row + 1 a = Worksheets("sheet2").Range("a" & ii & ":e" & ii) Worksheets("sheet3").Range("a" & iii & ":e" & iii) = a End If Next ii Next i End Sub エラー処理、アレンジはご自分で