全シート内の差分比較とそのセル色塗りつぶしマクロ
Excelファイルデータの差分比較とそのセル塗りつぶしのマクロを作成したいのですが、今の自分には、下記のマクロでとどまっており、
マクロを実行するファイル内シートにデータをコピーしたり、
マクロ内でその都度、シート名の記載の変更、差分比較データ範囲の変更が必要になり、大変不便で困っております。
やりたい事は、マクロでユーザがExcelのファイルを選択出来て、
そのファイルの中の全シートのデータについて、差分比較とそのそのセルの塗りつぶしをして、塗りつぶしをファイルへ反映させて保存させることです。
どうか、お分かりの方がいらっしゃいましたら、ご教示をお願い出来ますと大変助かります。
各シート内のデータは、列、行共にほぼ同じフォーマットで値が入っています。
それらのシート内のデータで修正した箇所を見つける為、差分比較がしたいです。
例えば、シートが3つの場合は、
1つ目のシートは修正前のデータ、
2つ目のシート内は1つ目のシートの値を部分的に修正したものです。
3つ目のシート内のデータも、1つ目のデータの値を更に再修正したものです。
この3つのシート内のデータを差分比較したいです。
シートの数は、選択したファイルによって異なります。
Sub TEST1()
Dim s1, s2 As Worksheet 'Worksheetsオブジェクト用
Set s1 = Worksheets("修正前S装置検索システム") '比較元シート名
Set s2 = Worksheets("修正後装置検索システム") '比較先シート名
Dim arr1 As Variant, arr2 As Variant
arr1 = s1.Range("$A$2:$W$548").Value
arr2 = s2.Range("$A$2:$W$548").Value
For i = 1 To UBound(arr1, 1)
For j = 1 To UBound(arr1, 2)
If arr1(i, j) <> arr2(i, j) Then
'塗りつぶし処理
s1.Cells(i + 1, j).Interior.Color = RGB(255, 0, 0)
s2.Cells(i + 1, j).Interior.Color = RGB(102, 255, 51)
End If
Next
Next
End Sub
お礼
ありがとうございます 今回のケースはこのマクロで補完出来そうです ただ、1点ご教授願いたいのですがですが… 1 For each文を調べたのですがイマイチ理解出来ず、具体的な動作のイメージ(どのように比較対象を検索させているのか)を教えていただけませんか?