プロが教えるわが家の防犯対策術!

添付した表を作成しました。2Fと3Fの使用が重なった日は、その日と前6日+後3日は1Fも使用可能という意味で色を塗って表しました。
C列には、=IF(OR(G2=2,G3=2,G4=2,G5=2,G6=2,G7=2,G8=2,G9=2,G10=2,G11=2),"/","")の数式を入れて、条件付き書式で塗りつぶしてます(数式の「/」も同じ色にして見えなくしてます)

上記の事をVBAで実現したいです。(G列が2の時、C列を前後10個分のセルに色を塗る)
宜しくお願いします。

「VBAで条件から範囲を指定して色を塗る方」の質問画像

A 回答 (1件)

こんにちは



VBAで行うような内容でも無いと思いますが、こんな感じでしょうか?

Sub Q13021270()
Dim r As Range, c As Range
Dim mn As Long, mx As Long

Set r = Range(Cells(2, 2), Cells(Rows.Count, 2).End(xlUp))
Cells(2, 3).Resize(Rows.Count - 1).Interior.Color = xlNone
mn = r(1).Row
mx = r(r.Cells.Count).Row
If mn < 2 Then Exit Sub

For Each c In r.Offset(, 3).Cells
If c.Value = "使用" And c.Offset(, 1).Value = "使用" Then _
Range(Cells(Application.Max(c.Row - 6, mn), 3), Cells _
(Application.Min(c.Row + 3, mx), 3)).Interior.Color = vbYellow
Next c
End Sub

※ 処理範囲の判断は、B列に値のある範囲までとしています。
※ E、F列の値は"使用"という文字列が入力されているものと仮定しています。
※ 上記の処理ではG列は使用していませんので、不要なら削除可能です。
    • good
    • 1
この回答へのお礼

ありがとうございます!
勉強になります!

お礼日時:2022/07/01 18:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!