Excelで特定のパターンに従ってセルに色を塗る場合、VBAを使うと柔軟に処理できます。ここでは1列目と2列目を交互に、セルに⚪︎が出現したタイミングで塗り開始位置を切り替える方法を解説します。
基本方針
1列目から塗り始め、⚪︎が現れたら次の空セルから2列目を塗り始め、再び⚪︎が出たら1列目に戻る、というループを行います。
VBAではForループで各行を順に確認し、変数で現在どの列を塗るかを管理します。
サンプルコード
Sub AlternatingFill()
Dim lastRow As Long
Dim colFlag As Integer
Dim i As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
colFlag = 1 ' 1列目から開始
For i = 1 To lastRow
If Cells(i, colFlag).Value = "⚪" Then
' 列を切り替える
If colFlag = 1 Then
colFlag = 2
Else
colFlag = 1
End If
' 次の空セルから塗る処理
Do While Cells(i, colFlag).Value <> ""
i = i + 1
If i > lastRow Then Exit Sub
Loop
End If
' 塗る処理(例: 赤)
Cells(i, colFlag).Interior.Color = RGB(255, 0, 0)
Next i
End Sub
解説
このコードではcolFlagで現在塗る列を管理し、⚪︎が出現するたびに1列目と2列目を切り替えます。空セルを見つけるまでループして、次の塗り開始位置を特定しています。
塗りたい色はRGB関数で自由に設定できますし、複数列や複雑なパターンにも応用可能です。
まとめ
VBAを使うことで、条件に応じた交互塗りが可能です。列切り替えや空セル判定を変数で管理することで、複雑なパターンも柔軟に処理できます。

コメント