「実務で超使う VBA 自動化パターン」を整理してみます。現場でよく使われるのは 繰り返し作業の自動化・条件付き処理・複数シート/ブックの一括処理・配列で爆速処理 です。以下に代表的なパターンをまとめます。
実務で超使う VBA 自動化パターン集
1️⃣ 条件一致セルだけ自動処理
- 金額が0のセルを赤枠
Sub HighlightZeroCells()
Dim ws As Worksheet, rng As Range, c As Range
For Each ws In ThisWorkbook.Worksheets
Set rng = ws.Range("C2:C" & ws.Cells(ws.Rows.Count, "C").End(xlUp).Row)
For Each c In rng
If c.Value = 0 Then c.BorderAround ColorIndex:=3, Weight:=xlMedium
Next c
Next ws
End Sub
VB- 背景色が黄色のセルをクリア
Sub ClearYellowCells()
Dim ws As Worksheet, c As Range
For Each ws In ThisWorkbook.Worksheets
For Each c In ws.UsedRange
If c.Interior.Color = vbYellow Then c.ClearContents
Next c
Next ws
End Sub
VB2️⃣ 複数シート × 複数列を一括処理
- 全シートの売上列を集計
Sub SumSalesAcrossSheets()
Dim ws As Worksheet, total As Double
For Each ws In ThisWorkbook.Worksheets
total = total + Application.Sum(ws.Range("D2:D" & ws.Cells(ws.Rows.Count, "D").End(xlUp).Row))
Next ws
Sheets("Master").Range("B1").Value = total
End Sub
VB- 全部のシートの A1・B1・C1 を初期化
Sub ResetHeaders()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1:C1").ClearContents
Next ws
End Sub
VB3️⃣ 配列で爆速処理
- NG → OK に一括変換
Sub ReplaceNGWithOK()
Dim ws As Worksheet, rng As Range, arr As Variant
Dim i As Long
Set ws = ActiveSheet
Set rng = ws.Range("B2:B1000")
arr = rng.Value
For i = 1 To UBound(arr, 1)
If arr(i, 1) = "NG" Then arr(i, 1) = "OK"
Next i
rng.Value = arr
End Sub
VB4️⃣ Union / Areas で離れた範囲をまとめて処理
Sub UnionExample()
Dim ws As Worksheet, rng1 As Range, rng2 As Range, target As Range
Set ws = ActiveSheet
Set rng1 = ws.Range("A1:A10")
Set rng2 = ws.Range("C1:C10")
Set target = Union(rng1, rng2)
target.Interior.Color = vbYellow
End Sub
VB5️⃣ イベント駆動型(Workbook_Open)
Private Sub Workbook_Open()
Call HighlightZeroCells
Call ReplaceNGWithOK
End Sub
VB👉 ブックを開いた瞬間に自動チェック・修正が走る。
実務での使い方
- 入力チェック(ゼロ・NG・空白セル検出)
- 集計・初期化(複数シートの売上集計、ヘッダー初期化)
- 高速変換(配列でまとめて置換)
- イベント駆動(開いた瞬間に自動処理)
練習課題
- 全シートの「A列非空セル」を集約して1枚のシートにまとめるコードを書く
- 背景色が赤のセルだけ削除するコードを作る
- Workbook_Open で「Configシートの設定値」に応じて処理を切り替えるコードを作る
こうしたパターンを組み合わせると、実務で超使える VBA 自動化フレームワークが完成します。


