Siddharthに同意します。これを行う最も簡単な方法は、おそらくバッファワークシートを使用することです。
毎日バッファを作成し、ワークブックを開いたときに入力したデータをバッファと比較することができます。次に、更新されたバッファを作成します。
これは機能します。メッセージボックスを使用する代わりに、最後に開いたときに変更されたシート1と列Aのセルを強調表示するだけですが、個人的にはセルを強調表示することをお勧めします。難しすぎる:
Sub Auto_Open()
ClearSheet1Formatting
CompareValuesBetweenTwoWorksheets
MsgBox "Hi, thanks for opening me Dora. The cells that are highlighted were changed on last open."
UpdateBufferSheet
End Sub
Sub CompareValuesBetweenTwoWorksheets()
Dim s1 As Worksheet
Dim s2 As Worksheet
Dim j As Long
Dim jj As Long
Dim CheckColumn As Integer
CheckColumn = 1
Set s1 = Sheet1
Set s2 = Sheet2
j = s1.Cells(Rows.Count, CheckColumn).End(xlUp).Row
For jj = 1 To j
If s1.Cells(jj, CheckColumn).Value <> s2.Cells(jj, CheckColumn).Value Then
s1.Cells(jj, CheckColumn).Interior.Color = vbYellow
End If
Next
End Sub
Sub UpdateBufferSheet()
Application.CutCopyMode = True
Sheets("Sheet1").Select
Cells.Select
Selection.Copy
Sheets("Sheet2").Select
Cells.Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("A1").Select
Application.CutCopyMode = False
End Sub
Sub ClearSheet1Formatting()
Sheets("Sheet1").Select
Cells.Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("A1").Select
End Sub
これを簡略化し、サブ名を改善しました。