ブロック処理(Resize 基本テンプレ集)
ここでは Resize を使った「範囲を拡張してまとめて処理する」基本パターンを整理します。
Offset と組み合わせると「任意の矩形を自由に切り出す」ことも可能です。
11. 3×3 の範囲を一括クリア
Range("B2").Resize(3, 3).ClearContents
VB👉 B2 を基点に 3 行 × 3 列の範囲をまとめてクリア。
12. 5 行 × 2 列のブロックに色を付ける
Range("C5").Resize(5, 2).Interior.Color = vbYellow
VB👉 C5 を基点に 5 行 × 2 列を黄色で塗りつぶし。
13. A1 を基点に 10 行 × 3 列をまとめてコピー
Range("A1").Resize(10, 3).Copy Destination:=Range("E1")
VB👉 A1 から 10 行 × 3 列を右側の E1 にコピー。
14. データ範囲を自動 Resize で取得
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1").Resize(lastRow, 1).Select
VB👉 A列の最終行までを自動で範囲指定。
15. 最終列までの全列を Resize で捕まえる
Dim lastCol As Long
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
Range("A1").Resize(1, lastCol).Interior.Color = vbGreen
VB👉 1 行目の最終列までを範囲指定して色付け。
16. 表ヘッダ(1 行 × N 列)を操作
Dim lastCol As Long
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
Range("A1").Resize(1, lastCol).Font.Bold = True
VB👉 ヘッダ行を太字に。
17. 特定行から 4 行分だけ処理
Range("B10").Resize(4, 1).Interior.Color = vbCyan
VB👉 B10 を基点に 4 行分を色付け。
18. いまのセルから上下 2 行だけ集計
Dim rng As Range
Set rng = ActiveCell.Offset(-2, 0).Resize(5, 1) ' 上2行+自分+下2行
MsgBox WorksheetFunction.Sum(rng)
VB👉 アクティブセルを中心に上下 2 行を含めて合計。
19. 右 5 列のブロックを削除
ActiveCell.Offset(0, 1).Resize(1, 5).ClearContents
VB👉 アクティブセルの右隣から 5 列分を削除。
20. Resize × Offset で任意の矩形を自由に切り出し
Range("C3").Offset(2, 1).Resize(4, 5).Interior.Color = vbRed
VB👉 C3 を基点に「下へ2行・右へ1列」から始まる 4 行 × 5 列を赤く塗る。
✅ まとめ
- Resize: 「範囲の大きさ」を指定する
- Offset: 「基準位置」をずらす
- 組み合わせると「任意の矩形を自由に操作」できる
💡 この 10 パターンをベースに、さらに「For Each」や「Dictionary」と組み合わせると 大量データの高速処理 に発展できます。


