エクセルのマクロでシートごとでの差分を表示させる方法

2014.01.07 火曜日 23:42:21

エクセルの特定のシートを他のシートと比較したくなる場合にやり方がイマイチ分からなかったんですが、、
マクロを使ったら簡単にできたので紹介しておきます。

Sub Macro()
'
' 2つのシートの同じ位置のセルの値を比較し、
' 等しくなければそのセルを赤で塗りつぶす。

'
  Dim RETSU_S, RETSU_E, GYOU_S, GYOU_E As Long
  RETSU_S = 1 '列をAから
  RETSU_E = 5 '列をHまで
  GYOU_S = 4 '行を4から
  GYOU_E = 1000 '行を101まで

  Dim s1, s2 As Worksheet 'Worksheetsオブジェクト用
  Set s1 = Worksheets("temp.csv") '比較元シート名
  Set s2 = Worksheets("output.csv") '比較先シート名

  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)
      Else
         '同じ位置のセルの値が等しければ、そのセルを白で塗りつぶす。
        s1.Cells(gyou, retsu).Interior.ColorIndex = 0
        s2.Cells(gyou, retsu).Interior.ColorIndex = 0
      End If
    Next
  Next

End Sub

上のコードをエクセルのマクロで使えば簡単に差分を作れちゃいます。
ちなみに上のコードを実行すると違う箇所のセルだけが赤くなるようになっています。

Our Business
最近の記事
人気記事
Our Project
comming soon