| 
    
     |  | こんにちは 現在、条件によってセルの背景色を変えるマクロを作成しています。
 その条件というのが、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を使えばいいらしい、というのは目にしたのですが
 どう記述すればよいかがいまいち分かりません。
 このような記述をより浅く、もしくは別の方法でより分かりやすく
 記述するにはどうすればよいでしょうか。
 よろしくお願いいたします。
 
 |  |