ここでは 複数シートにまたがって条件付き処理(例: 値が負なら赤色にする) VBAの例を紹介します。複数シートをループしながら、セルの値を判定して色を変える仕組みです。
基本コード例
Sub 複数シートで条件付き処理()
Dim ws As Worksheet
Dim c As Range
' 全シートを対象にループ
For Each ws In Worksheets
' 各シートの対象範囲を指定(例: A1:A10)
For Each c In ws.Range("A1:A10")
If IsNumeric(c.Value) Then
If c.Value < 0 Then
c.Interior.Color = RGB(255, 200, 200) ' 負の数なら赤系
Else
c.Interior.Color = RGB(200, 255, 200) ' 0以上なら緑系
End If
End If
Next c
Next ws
End Sub
VB👉 このコードを実行すると、すべてのシートのA1~A10をチェックし、負の数は赤、0以上は緑に塗り分けます。
応用例1: 特定シートだけ対象にする
Sub 特定シートで条件付き処理()
Dim ws As Worksheet
Dim c As Range
For Each ws In Worksheets(Array("Sheet1", "Sheet3"))
For Each c In ws.Range("B2:B20")
If IsNumeric(c.Value) And c.Value < 0 Then
c.Interior.Color = RGB(255, 150, 150)
End If
Next c
Next ws
End Sub
VB👉 「Sheet1」と「Sheet3」だけを対象に処理します。
応用例2: 複数条件を組み合わせる
Sub 複数条件で色分け()
Dim ws As Worksheet
Dim c As Range
For Each ws In Worksheets
For Each c In ws.Range("C2:C20")
If IsNumeric(c.Value) Then
Select Case c.Value
Case Is < 0
c.Interior.Color = RGB(255, 150, 150) ' 赤
Case 0
c.Interior.Color = RGB(255, 255, 150) ' 黄色
Case Is > 0
c.Interior.Color = RGB(150, 255, 150) ' 緑
End Select
End If
Next c
Next ws
End Sub
VB👉 負の数は赤、0は黄色、正の数は緑に塗り分けます。
ポイント
- 複数シートをループ →
For Each ws In Worksheets - セルの値を判定 →
If IsNumeric(c.Value)で数値か確認 - 条件分岐 →
IfやSelect Caseを使うとわかりやすい - 色付け →
.Interior.Color = RGB(赤,緑,青)
練習課題
- 全シートの「B列」を対象にして、負の数は赤、100以上は青にする
- 特定のシートだけを対象にして、0なら黄色に塗る処理を作る
- 複数条件を組み合わせて「負=赤」「0=黄」「正=緑」「100以上=青」にする
こうした仕組みを作ると、複数シートにまたがって条件付き処理を自動化でき、手作業で色付けする手間が大幅に減ります。

