フルオート(Offset × Resize × 自動範囲テンプレ集)
ここでは Offset × Resize × 自動範囲検出 を組み合わせて「表全体を自動的に拡張・加工・展開」するパターンをまとめます。
実務でよくある「列追加」「行追加」「判定列生成」「別シート展開」などを一括で扱えるテンプレです。
91. 表全体を自動拡張(列追加)
Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Resize(tbl.Rows.Count, tbl.Columns.Count + 1).Columns(tbl.Columns.Count + 1).Value = "新列"
VB👉 表の右端に新しい列を追加。
92. 表全体を自動拡張(行追加)
Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Offset(tbl.Rows.Count, 0).Resize(1, tbl.Columns.Count).Value = "新行"
VB👉 表の下に新しい行を追加。
93. データ最終行へコメント追記
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(lastRow, 1).Offset(0, 1).Value = "最終行コメント"
VB👉 最終行の右隣にコメントを追記。
94. 全列の補助列生成を一括処理
Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Offset(0, tbl.Columns.Count).Resize(tbl.Rows.Count, tbl.Columns.Count).Value = "補助"
VB👉 表の右側に「補助列」を全列分追加。
95. 全行の判定列生成を一括処理
Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Offset(0, tbl.Columns.Count).Resize(tbl.Rows.Count, 1).FormulaR1C1 = "=IF(RC[-1]>100,""OK"",""NG"")"
VB👉 表の右端に「判定列」を追加。
96. 行の挿入位置を自動検出
Dim insertRow As Long
insertRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Rows(insertRow).Insert
VB👉 データ最終行の下に新しい行を自動挿入。
97. 列の挿入位置を自動検出
Dim insertCol As Long
insertCol = Cells(1, Columns.Count).End(xlToLeft).Column + 1
Columns(insertCol).Insert
VB👉 データ最終列の右に新しい列を自動挿入。
98. 左端へ管理列を追加
Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Offset(0, -1).Resize(tbl.Rows.Count, 1).Value = "管理"
VB👉 表の左端に「管理列」を追加。
99. 右端にサマリー列を生成
Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Offset(0, tbl.Columns.Count).Resize(tbl.Rows.Count, 1).FormulaR1C1 = "=SUM(RC[-3]:RC[-1])"
VB👉 表の右端に「サマリー列」を生成。
100. 表全体を別シートへ自動展開
Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Copy Destination:=Sheets("Sheet2").Range("A1")
VB👉 表全体を別シートへコピー展開。
✅ まとめ
- CurrentRegion → 表全体を自動検出
- Resize → 行・列を拡張
- Offset → 新しい列・行を追加
- Insert / Copy → 表を再配置・展開
💡 この「フルオート10パターン」を組み合わせれば、表の拡張・判定列追加・サマリー生成・別シート展開まで 完全自動化 が可能です。


