こちらに「条件分岐+セル操作(色付け・転記)」の実務サンプル集をまとめました。
条件によってセルの色を変えたり、別シートに転記する処理を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👉 条件に応じて「合格/不合格」などのフラグを自動付与。
✅ まとめ
- 色付け → データの状態を視覚化(進捗・点数・在庫など)
- 転記 → 条件に合うデータを抽出して別シートへ
- イベント連動 → 入力時に即色付けや判定を実行
👉 このサンプル集を組み合わせれば、「条件分岐+セル操作」で業務効率化」が一気に進みます。
