Excel VBA | Offset × Resize × ForEach の 黄金 100 パターン集

VBA
スポンサーリンク

フルオート(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パターン」を組み合わせれば、表の拡張・判定列追加・サマリー生成・別シート展開まで 完全自動化 が可能です。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました