18jan.xlsx に次のデータを含めます。
ABC 10
XYZ 20
PQR 30
STU 40
DEF 50
HIJ 60
KLM 70
19jan.xlsx には以下が含まれます。
XYZ 20
ABC 15
STU 40
DEF 50
HIJ 65
PQR 30
KLM 70
それらを比較して変更を強調表示する必要があります。たとえば、ここでは ABC の前の 15 を強調表示する必要があります。また、日付を変更して毎日これを行う必要があります。
データが行 1 から始まる列に配置されていると仮定するとA:B
、次のコードがその役割を果たします。
Sub DailyDataHighlight()
Dim InputFolder As String
Dim OldExcel As String
Dim NewExcel As String
Dim i As Long
Dim OldString As String
Dim OldValue As String
Dim NewValue As String
Dim SearchResult As Range
InputFolder = "D:\DOCUMENTS\"
OldExcel = "18jan.xlsx"
NewExcel = "19jan.xlsx"
Application.ScreenUpdating = False
Application.Workbooks.Open (InputFolder & OldExcel)
Application.Workbooks.Open (InputFolder & NewExcel)
For i = 1 To Workbooks(OldExcel).ActiveSheet.Range("A1").CurrentRegion.Rows.Count
OldString = Workbooks(OldExcel).ActiveSheet.Cells(i, 1).Text
OldValue = Workbooks(OldExcel).ActiveSheet.Cells(i, 2).Text
Set SearchResult = Workbooks(NewExcel).ActiveSheet.Range("A1").CurrentRegion
Set SearchResult = SearchResult.Find(OldString, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
If Not SearchResult Is Nothing Then
NewValue = SearchResult.Offset(0, 1).Text
If NewValue <> OldValue Then SearchResult.Offset(0, 1).Interior.Color = RGB(0, 255, 0)
End If
Next i
Workbooks(NewExcel).Save
Application.ScreenUpdating = True
End Sub
前提と詳細:
.Interior.Color = RGB(0, 255, 0)
します。サンプル ファイルも共有されています: https://www.dropbox.com/s/vqkulovmg98yaih/DailyDataHighlight.xlsm
VBAの学習に役立つことを願っています)