|
こんにちは
現在、条件によってセルの背景色を変えるマクロを作成しています。
その条件というのが、10:00〜17:00までの1時間ごとに、その時間以降、
セルの値が特定のものだったら色を変える、というものです。
A1セルの値は不定の時間によって○→△→□と変化していき、
B1、C1セルの値は不変です。
そこで下記のようなマクロを作成しました。
Sub ChangeColor()
Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range
Set rng1 = Range("A1")
Set rng2 = Range("B1")
Set rng3 = Range("C1")
If Time > CDate("10:00") Then
If rng1 Like "*○○*" And rng2 Like ("*い*") Then
rng1.Interior.ColorIndex = 3
End If
If Time > CDate("11:00") Then
If rng1 Like "*△△*" And rng3 Like ("*う*") Then
rng1.Interior.ColorIndex = 4
End If
If Time > CDate("12:00") Then
If rng1 Like "*□□*" And rng3 Like ("*う*") Then
rng1.Interior.ColorIndex = 5
End If
If Time > CDate("13:00") Then
If Time > CDate("14:00") Then
If Time > CDate("15:00") Then
If Time > CDate("16:00") Then
If Time > CDate("17:00") Then
End If
End If
End If
End If
End If
End If
End If
End If
End Sub
とりあえず狙ったようには動くのですが、他サイトなどを見ると
あまりネストを深くするべきではない、などの記述がありますし
自分で見ても混乱する時があります。
また、時間と時間の間の条件は、今後追加や削除がありえます。
Select〜Caseを使えばいいらしい、というのは目にしたのですが
どう記述すればよいかがいまいち分かりません。
このような記述をより浅く、もしくは別の方法でより分かりやすく
記述するにはどうすればよいでしょうか。
よろしくお願いいたします。
|
|