下記のように、企業名と評価が約200行ある今月と前月のシートを比較したいと思います。
行の表示順が違うシートどうしを比較し、
今月の2014.08シートの、評価が変更されたセルの文字を赤字で表示させたいのですが。
また来月からも使えるように、例えばセルF1に比較したいシート名を打ち込んで、
将来も使えるようにしたいです。
何卒よろしくお願いいたします。
企業名 A社評価 B社評価 C社評価
2014.08シート
トヨタ A AA B
富士通 B AA A
ソニー B BB C
タカタ BB A C
:
2014.07シート
ソニー C BB C
トヨタ A AA B
タカタ BB A C
富士通 A AA A
:
こんにちは!
>また来月からも使えるように、例えばセルF1に比較したいシート名を打ち込んで
とありますので、「2014.08」SheetのF1セルに比較したいSheet名を入力するとしての一例です。
↓の画像で左側が「2014.07」Sheetで右側が「2014.08」Sheetとします。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り、マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub Sample1() 'この行から
Dim i As Long, j As Long, lastRow As Long
Dim str As String, c As Range, wS As Worksheet
With Worksheets("2014.08")
str = .Range("F1")
Set wS = Worksheets(str)
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
Range(.Cells(2, "B"), .Cells(lastRow, "D")).Interior.ColorIndex = xlNone
For i = 2 To lastRow
Set c = wS.Range("A:A").Find(what:=.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
For j = 2 To 4
If .Cells(i, j) <> wS.Cells(c.Row, j) Then
.Cells(i, j).Interior.ColorIndex = 6 '←黄色
End If
Next j
End If
Next i
End With
End Sub 'この行まで
※ 評価が変わったセルは「黄色」にしています。m(_ _)m
お礼
出来ました。ありがとうございます! ご丁寧に細かくに説明いだだき、また図も入れていただき助かりました。 感謝です!ほんとうにありがとうございます。 m(_ _)m