Excel VBA | VBA 分岐処理関数一覧

Excel VBA VBA
スポンサーリンク

こちらに「条件分岐+セル操作(色付け・転記)」の実務サンプル集をまとめました。
条件によってセルの色を変えたり、別シートに転記する処理をVBAで自動化できます。


条件分岐+セル操作サンプル集

1. 数値に応じてセルの色を変える(If)

Sub ColorByValue()
    Dim lastRow As Long, i As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 2 To lastRow
        If Cells(i, 1).Value >= 80 Then
            Cells(i, 1).Interior.Color = RGB(144, 238, 144) ' 緑
        ElseIf Cells(i, 1).Value >= 50 Then
            Cells(i, 1).Interior.Color = RGB(255, 255, 0)   ' 黄
        Else
            Cells(i, 1).Interior.Color = RGB(255, 99, 71)   ' 赤
        End If
    Next i
End Sub
VB

👉 点数や売上などの数値を色分けして視覚化。


2. 値に応じて行全体を色付け(Select Case)

Sub HighlightRows()
    Dim lastRow As Long, i As Long
    lastRow = Cells(Rows.Count, 2).End(xlUp).Row
    
    For i = 2 To lastRow
        Select Case Cells(i, 2).Value
            Case "完了"
                Rows(i).Interior.Color = RGB(200, 255, 200) ' 薄緑
            Case "進行中"
                Rows(i).Interior.Color = RGB(255, 255, 150) ' 薄黄
            Case "未着手"
                Rows(i).Interior.Color = RGB(255, 200, 200) ' 薄赤
        End Select
    Next i
End Sub
VB

👉 タスク管理表の進捗状況を色で可視化


3. 条件に合うデータを別シートに転記(If)

Sub CopyHighSales()
    Dim wsSrc As Worksheet, wsDst As Worksheet
    Dim lastRow As Long, dstRow As Long, i As Long
    
    Set wsSrc = Sheets("Data")
    Set wsDst = Sheets("HighSales")
    dstRow = 2
    
    lastRow = wsSrc.Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 2 To lastRow
        If wsSrc.Cells(i, 3).Value >= 100000 Then
            wsSrc.Rows(i).Copy wsDst.Rows(dstRow)
            dstRow = dstRow + 1
        End If
    Next i
End Sub
VB

👉 売上が一定以上のデータだけを抽出して別シートに転記


4. 入力値に応じてセルを自動色付け(Worksheet_Changeイベント)

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 5 And Target.Count = 1 Then
        If Target.Value >= 5 Then
            Target.Interior.Color = RGB(144, 238, 144) ' 緑
        Else
            Target.Interior.Color = RGB(255, 182, 193) ' ピンク
        End If
    End If
End Sub
VB

👉 入力時に即座に色が変わる。チェックリストや入力フォームに便利。


5. 条件に応じて別列にフラグを付与(IIf)

Sub AddFlag()
    Dim lastRow As Long, i As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 2 To lastRow
        Cells(i, 4).Value = IIf(Cells(i, 1).Value >= 60, "合格", "不合格")
    Next i
End Sub
VB

👉 条件に応じて「合格/不合格」などのフラグを自動付与


✅ まとめ

  • 色付け → データの状態を視覚化(進捗・点数・在庫など)
  • 転記 → 条件に合うデータを抽出して別シートへ
  • イベント連動 → 入力時に即色付けや判定を実行

👉 このサンプル集を組み合わせれば、「条件分岐+セル操作」で業務効率化」が一気に進みます。

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