テーブル整形(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パターン」をベースにすれば、表の見やすさ改善や入力欄追加、サマリー作成などが自在にできます。


