この二つのエクセルを下記の仕様で比較をしたいのですが、初心者のためどのようなプログラムを書くのか分かりません。
申し訳ありませんが、ご教示いただけますと幸いです。
【ファイル情報】
二つのエクセル(sample1.xlsx / sample2.xlsx)があり、
それぞれのデータ内容は下記となります。
例
■ファイル「sample1.xlsx」
| A列 | B列 | C列 | D列 | E列 |
AAA BBB 10 あああ ★★
CCC DDD 5 いいい ☆☆
EEE FFF 2 ううう ☆☆
■ファイル「sample2.xlsx」
| A列 | B列 | C列 |
AAA BBB 10
CCC DDD 5
EEE FFF 10
【やりたい事】
- sample1.xlsx と sample2.xlsxのA列・B列・C列を比較。
sample1が主エクセル、sample2が比較用エクセルです。 - A列・B列が同じ組み合わせのもので、C列の数値が違った場合は
sample1のエクセルから、その行のA列~E列を抜粋し、違うシートに書き込む。
または色付け。
(上記 例ですと「EEE FFF 2 ううう ☆☆」の行が抜粋対象となります。) - A列・B列が同じ組み合わせのもので、C列の数値も同じであれば「OK」。
- sample1のデータが入っている最終行まで、上記処理を行う。
- 全ての処理が完了したら「処理完了」のメッセージを出す。
ネット情報の切り貼りですが、現在はサンプルをA列のみとし比較、「4」まで作成しています。
初心者であり非力なので、ご教示いただけますと助かります。
宜しくお願いいたします。
Sub hikaku() Dim hida As Long Dim migi As Long Dim ws1 As Worksheet Dim ws2 As Worksheet Set ws1 = ThisWorkbook.Worksheets("sample1") Workbooks.Open Filename:=ThisWorkbook.Path & "\sample2.xlsx" Set ws2 = ActiveWorkbook.Worksheets("sample") For migi = 2 To 4 For hida = 2 To 8 If ws2.Range("A" & migi).Value = ws1.Range("A" & hida).Value Then ws1.Range("C" & hida).Value = "OK" Exit For End If Next Next For hida = 2 To 8 If ws1.Range("C" & hida).Value = "" Then ws1.Range("C" & hida).Interior.Color = vbYellow Else ws1.Range("C" & hida).Interior.Color = xlNone End If Next End Sub