わたろぐ

仕事、読書、ガジェット、グルメ、写真、旅行など雑多な備忘

【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

比較する内容や、セルの色を変えることで応用できると思う。