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

VBA
スポンサーリンク

テーブル整形(Offset × Resize 基本テンプレ集)

ここでは Offset × Resize を組み合わせて「表の構造を整形する」パターンをまとめます。
列のスライド・ヘッダ操作・色分け・再配置など、実務でよくある整形処理を整理しました。


71. 表ヘッダを上下に入れ替え

Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Rows(1).Cut
tbl.Rows(tbl.Rows.Count + 1).Insert Shift:=xlDown
VB

👉 ヘッダ行を表の下段へ移動(上下入れ替え)。


72. 列を 1 列右へスライド

Range("B:B").Cut
Range("C:C").Insert Shift:=xlToRight
VB

👉 B列を右隣へスライド。


73. 空白列をまとめて削除

Dim col As Range
For Each col In Range("A:Z").Columns
    If WorksheetFunction.CountA(col) = 0 Then col.Delete
Next col
VB

👉 空白列を自動検出して削除。


74. フラグ列をまとめて追加

Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Offset(0, tbl.Columns.Count).Resize(tbl.Rows.Count, 1).Value = "FLAG"
VB

👉 表の右端に「フラグ列」を追加。


75. 入力欄を右側に増設

Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Offset(0, tbl.Columns.Count).Resize(tbl.Rows.Count, 2).Value = ""
VB

👉 表の右側に「空欄の入力列」を2列追加。


76. 下段にサマリーセクション追加

Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Offset(tbl.Rows.Count, 0).Resize(2, tbl.Columns.Count).Interior.Color = vbYellow
VB

👉 表の下に「サマリー用の2行」を追加。


77. 上段にフィルタ行を追加

Rows(1).Insert
Range("A1").Value = "Filter"
VB

👉 表の上にフィルタ行を追加。


78. 列ごとにタイトル付与

Dim col As Range
For Each col In Range("A:D").Columns
    col.Cells(1, 1).Value = "Title_" & col.Column
Next col
VB

👉 各列の先頭セルにタイトルを付与。


79. 1 列おきに色分け

Dim i As Long
For i = 1 To 10
    If i Mod 2 = 0 Then
        Columns(i).Interior.Color = RGB(220, 230, 241) ' 薄い青
    End If
Next i
VB

👉 偶数列だけ色分けして見やすく。


80. 表全体を別座標に再配置

Dim tbl As Range
Set tbl = Range("A1").CurrentRegion
tbl.Copy Destination:=Range("K5")
VB

👉 表全体を「K5」から始まる位置に再配置。


✅ まとめ

  • Offset → 表の左右上下に列や行を追加・移動
  • Resize → 表サイズを拡張・縮小
  • CurrentRegion → 表全体を自動検出
  • 色分け・タイトル付与・再配置 → 実務で頻出の整形処理を一括テンプレ化

💡 この「テーブル整形10パターン」をベースにすれば、表の見やすさ改善や入力欄追加、サマリー作成などが自在にできます。

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