特定の条件に基づいて強調表示機能を VBA でコーディングしようとしています。これは条件付き書式を使用して簡単に実行できますが、ユーザーが (特別な場合を除いて) 切り取り/貼り付け/行の削除などを行った場合に気付きました。次に、条件付き書式の範囲が変更されます。条件付き書式の範囲を実際のセルにマップするのではなく、固定したままにしたい。誰かがそれを行う方法を知っているか、条件付き書式を保護してもデータ操作を許可している場合、このコードは不要です。
私が試している 2 つの異なるコードを見つけましたが、私は VBA に慣れていないので、VBA はあまり得意ではなく、問題に遭遇します。Isblank または Isempty 機能を使用する方法がわかりません。
今から 30 日より前の日付 (経過した日付を含む) を赤で強調表示する必要があります。今から 60 日より前で、30 日より前の日付を黄色で強調表示する必要があります。データのないセルと 60 日を超えたセルは、強調表示されないままにする必要があります。
どんな助けでも大歓迎です!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer
If Not Intersect(Target, Range("C3:T65")) Is Nothing Then
Select Case Target
Case Is <= Date + 60
icolor = 6
Case Is <= Date + 30
icolor = 3
Case IsEmpty()
icolor = 2
End Select
Target.Interior.ColorIndex = icolor
End If
End Sub
その他のオプション:
Sub Highlight()
Dim cell As Range
For Each cell In Range("C3:T65")
If cell.Value <= Date + 60 And cell.Value > Date + 30 Then
cell.Offset(0, 1).Interior.ColorIndex = 6
ElseIf cell.Value <= Date + 30 Then
cell.Offset(0, 1).Interior.ColorIndex = 3
ElseIf cell.Value IsEmpty() Then
cell.Offset(0, 1).Interior.ColorIndex = 2
End If
Next cell
End Sub