表構造(Offset × Resize × 自動検出テンプレ集)
ここでは Offset × Resize × 自動検出 を組み合わせて「表全体を柔軟に扱う」ための基本パターンをまとめます。
実務でよくある「ヘッダ検出」「データ抽出」「表拡張」「コピー」などを一気に整理しました。
41. ヘッダ行を自動検出
Dim headerRow As Long
headerRow = Range("A1").Row ' 通常は1行目がヘッダ
Range("A" & headerRow).Resize(1, Cells(1, Columns.Count).End(xlToLeft).Column).Font.Bold = True
VB👉 ヘッダ行を自動検出して太字に。
42. データ部分だけ Resize で抽出
Dim lastRow As Long, lastCol As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
Range("A2").Resize(lastRow - 1, lastCol).Select
VB👉 ヘッダを除いた「データ部分」だけを抽出。
43. 最終行と最終列を同時に検出
Dim lastRow As Long, lastCol As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox "最終行: " & lastRow & " 最終列: " & lastCol
VB👉 表のサイズを自動検出。
44. 表全体のブロックを一括取得
Dim tbl As Range
Dim lastRow As Long, lastCol As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
Set tbl = Range("A1").Resize(lastRow, lastCol)
tbl.Select
VB👉 表全体を一括で範囲化。
45. 表の右側にサマリー列追加
Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Offset(0, tbl.Columns.Count).Resize(tbl.Rows.Count, 1).Value = "Summary"
VB👉 表の右隣に「サマリー列」を追加。
46. 表の下に集計行を追加
Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Offset(tbl.Rows.Count, 0).Resize(1, tbl.Columns.Count).FormulaR1C1 = "=SUM(R1C:R[-1]C)"
VB👉 表の下に「合計行」を追加。
47. 表の左にフラグ列を自動挿入
Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Offset(0, -1).Resize(tbl.Rows.Count, 1).Value = "FLAG"
VB👉 表の左側に「フラグ列」を追加。
48. 表の右下に更新日時を記録
Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Cells(tbl.Rows.Count, tbl.Columns.Count).Offset(1, 0).Value = "更新: " & Now
VB👉 表の右下に更新日時を記録。
49. 表サイズに応じて拡張処理
Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Resize(tbl.Rows.Count + 2, tbl.Columns.Count + 1).Interior.Color = vbCyan
VB👉 表サイズを拡張して処理(例: 色付け)。
50. 表範囲を Offset し別シートへコピー
Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Copy Destination:=Sheets("Sheet2").Range("B2")
VB👉 表全体を別シートの指定位置へコピー。
✅ まとめ
- CurrentRegion → 表全体を自動検出
- Resize → 表サイズを拡張・縮小
- Offset → 表の左右上下に列や行を追加
- 最終行・最終列検出 → 実務で必須の「動的表処理」
💡 この 10 パターンをベースにすれば「表構造の自動検出と拡張処理」が自在にできます。


