• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAで表の塗りわけ)

エクセルVBAで表の塗りわけ

このQ&Aのポイント
  • エクセル2003で、B列の時刻を基準に表を4色に塗りわけるVBAコードの改善方法
  • 行ごとに時刻を比較して、異なる場合に色を塗りわけるVBAコードの改善方法を教えてください
  • エクセルVBAを使って、特定の列の値に基づいて表の色を変える方法を教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>他にもっと良い方法はないでしょうか? 変数を1コ増やすだけ Dim H as Long cl = Split("2,19,35,39", ",") For Each rng In Range("B2", Cells(Rows.Count, "B").End(xlUp))   If Hour(rng.Value) <> H Then     n = n + 1     H = Hour(rng.Value)   End If   rng.EntireRow.Interior.ColorIndex = Val(cl(n Mod 4)) Next

emaxemax
質問者

お礼

な~るほどぉ!! 勉強になりました。ありがとうございます。 あと、Val関数で数値化するなら最初からSplit関数をArray関数に変え、以下のようにしました。 Sub test01() Dim cl As Variant Dim n As Long, h As Long cl = Array(2, 19, 35, 39) For Each rng In Range("B2", Cells(Rows.Count, "B").End(xlUp)) If Hour(rng.Value) <> h Then n = n + 1 h = Hour(rng.Value) End If rng.EntireRow.Interior.ColorIndex = cl(n Mod 4) Next End Sub

関連するQ&A

専門家に質問してみよう