抽出・フィルタ(Resize 応用テンプレ集)
ここでは Resize を応用して「条件抽出・フィルタリング」を行う基本パターンを整理します。
実務でよくある「条件一致行の抽出」「複数列の切り出し」「異常値マーキング」などをまとめました。
61. 条件一致行を別ブロックにまとめる
Dim r As Range, pasteRow As Long
pasteRow = 20
For Each r In Range("A2:A100")
If r.Value = "OK" Then
r.EntireRow.Copy Destination:=Cells(pasteRow, 1)
pasteRow = pasteRow + 1
End If
Next r
VB👉 「OK」の行だけを下段(20行目以降)へまとめてコピー。
62. 条件一致列だけを抽出
Dim col As Range, pasteCol As Long
pasteCol = 10
For Each col In Range("A:D").Columns
If col.Cells(1, 1).Value = "対象" Then
col.Copy Destination:=Cells(1, pasteCol)
pasteCol = pasteCol + 1
End If
Next col
VB👉 ヘッダが「対象」の列だけを抽出して右側へコピー。
63. 3 列だけを切り出し Resize
Range("A1").Resize(100, 3).Copy Destination:=Range("F1")
VB👉 A1 を基点に「100行 × 3列」を切り出して F列へコピー。
64. 範囲を Offset して別の位置へ
Range("B2:D20").Offset(0, 5).Value = Range("B2:D20").Value
VB👉 B2:D20 の範囲を「右に5列ずらした位置」にコピー。
65. 複数列を同時に抽出
Range("A:C").Copy Destination:=Range("H1")
VB👉 A〜C列をまとめて抽出して H列へコピー。
66. 範囲を縦横入れ替えて貼り付け
Range("A1:C10").Copy
Range("E1").PasteSpecial Paste:=xlPasteAll, Transpose:=True
VB👉 A1:C10 の範囲を「転置」して E列へ貼り付け。
67. マッチ行だけ色付け
Dim r As Range
For Each r In Range("A2:A100")
If r.Value = "NG" Then
r.EntireRow.Interior.Color = vbRed
End If
Next r
VB👉 「NG」の行だけ赤色でマーキング。
68. 空白行だけまとめて抽出
Dim r As Range, pasteRow As Long
pasteRow = 50
For Each r In Range("B2:B100")
If IsEmpty(r.Value) Then
r.EntireRow.Copy Destination:=Cells(pasteRow, 1)
pasteRow = pasteRow + 1
End If
Next r
VB👉 B列が空白の行だけを下段(50行目以降)へ抽出。
69. 異常値だけ抽出し右側へまとめ
Dim r As Range, pasteRow As Long
pasteRow = 2
For Each r In Range("C2:C100")
If IsNumeric(r.Value) And r.Value < 0 Then
Cells(pasteRow, 10).Value = r.Value
pasteRow = pasteRow + 1
End If
Next r
VB👉 C列の「負の値」だけを右側(J列)へまとめる。
70. 一致しない行を別ブロックへ
Dim r As Range, pasteRow As Long
pasteRow = 30
For Each r In Range("D2:D100")
If r.Value <> "PASS" Then
r.EntireRow.Copy Destination:=Cells(pasteRow, 1)
pasteRow = pasteRow + 1
End If
Next r
VB👉 「PASS」でない行だけを下段(30行目以降)へ抽出。
✅ まとめ
- Resize → 範囲を切り出す・拡張する
- Offset → コピー先をずらす
- For Each → 条件ごとに抽出・フィルタリング
💡 この「抽出・フィルタ10パターン」をベースにすれば、実務で頻出する「条件一致行の抽出」「異常値検出」「転置コピー」などを自在に扱えます。


