Excel VBA | 複数シートにまたがって条件付き処理

VBA
スポンサーリンク

ここでは 複数シートにまたがって条件付き処理(例: 値が負なら赤色にする) 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) で数値か確認
  • 条件分岐IfSelect Case を使うとわかりやすい
  • 色付け.Interior.Color = RGB(赤,緑,青)

練習課題

  1. 全シートの「B列」を対象にして、負の数は赤、100以上は青にする
  2. 特定のシートだけを対象にして、0なら黄色に塗る処理を作る
  3. 複数条件を組み合わせて「負=赤」「0=黄」「正=緑」「100以上=青」にする

こうした仕組みを作ると、複数シートにまたがって条件付き処理を自動化でき、手作業で色付けする手間が大幅に減ります。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました