【Excel】【VBA】2つのシートを比較して違うセルに色を付ける
仕事でサイズの大きな複数ののCSVファイルを比較することがよくある。 エクセルに開いてマクロで結果を出すのが効率的なので、2つのシートを比較するマクロをメモしておく。
Sub Macro() ' ' 2つのシートの同じ位置のセルの値を比較し、 ' 等しくなければそのセルを赤で塗りつぶす。 ' Dim RETSU_S, RETSU_E, GYOU_S, GYOU_E As Long RETSU_S = 1 '列をAから RETSU_E = 10 '列をJまで GYOU_S = 2 '行を2から GYOU_E = 101 '行を101まで Dim s1, s2 As Worksheet 'Worksheetsオブジェクト用 Set s1 = Worksheets("Sheet1") '比較元シート名 Set s2 = Worksheets("Sheet2") '比較先シート名 Dim retsu, gyou As Long 'この変数で列と行を指定する For gyou = GYOU_S To GYOU_E '開始行から終了行まで For retsu = RETSU_S To RETSU_E '開始列から終了列まで If s1.Cells(gyou, retsu).Value <> s2.Cells(gyou, retsu).Value Then '同じ位置のセルの値が等しくなければ、そのセルを赤で塗りつぶす。 s1.Cells(gyou, retsu).Interior.Color = RGB(255, 0, 0) s2.Cells(gyou, retsu).Interior.Color = RGB(255, 0, 0) End If Next Next End Sub
比較する内容や、セルの色を変えることで応用できると思う。