ここでは WorksheetFunction × Offset × Resize を組み合わせて「範囲を動的に指定し、集計・統計処理を自動化する」黄金パターンをまとめます。WorksheetFunction で統計関数を呼び出し、Offset と Resize で柔軟に範囲を指定することで、表のサイズが変動しても対応可能になります。
基本パターン 10選
1. 合計値を右隣に出力
Dim rng As Range
Set rng = Range("A2").Resize(10, 1)
Range("A2").Offset(0, 1).Value = WorksheetFunction.Sum(rng)
VB👉 A2から10行分の合計を右隣に出力。
2. 平均値を下段に出力
Dim rng As Range
Set rng = Range("B2").Resize(20, 1)
rng.Offset(rng.Rows.Count, 0).Value = WorksheetFunction.Average(rng)
VB👉 B列20行分の平均を最終行の下に出力。
3. 最大値を右隣に出力
Dim rng As Range
Set rng = Range("C2").Resize(15, 1)
Range("C2").Offset(0, 1).Value = WorksheetFunction.Max(rng)
VB👉 C列15行分の最大値を右隣に出力。
4. 最小値を下段に出力
Dim rng As Range
Set rng = Range("D2").Resize(12, 1)
rng.Offset(rng.Rows.Count, 0).Value = WorksheetFunction.Min(rng)
VB👉 D列12行分の最小値を最終行の下に出力。
5. 標準偏差を右隣に出力
Dim rng As Range
Set rng = Range("E2").Resize(30, 1)
Range("E2").Offset(0, 1).Value = WorksheetFunction.StDev(rng)
VB👉 E列30行分の標準偏差を右隣に出力。
6. 件数を下段に出力
Dim rng As Range
Set rng = Range("F2").Resize(25, 1)
rng.Offset(rng.Rows.Count, 0).Value = WorksheetFunction.Count(rng)
VB👉 F列25行分の件数を最終行の下に出力。
7. 空白セルの件数を右隣に出力
Dim rng As Range
Set rng = Range("G2").Resize(20, 1)
Range("G2").Offset(0, 1).Value = WorksheetFunction.CountBlank(rng)
VB👉 G列20行分の空白セル件数を右隣に出力。
8. 条件付き件数(COUNTIF)
Dim rng As Range
Set rng = Range("H2").Resize(20, 1)
Range("H2").Offset(0, 1).Value = WorksheetFunction.CountIf(rng, ">=100")
VB👉 H列20行分で100以上の件数を右隣に出力。
9. 条件付き合計(SUMIF)
Dim rng As Range
Set rng = Range("I2").Resize(20, 1)
Range("I2").Offset(0, 1).Value = WorksheetFunction.SumIf(rng, "VIP", Range("J2").Resize(20, 1))
VB👉 I列で「VIP」の行に対応するJ列の合計を右隣に出力。
10. 動的範囲の平均(Resizeで拡張)
Dim rng As Range
Set rng = Range("K2").Resize(Cells(Rows.Count, "K").End(xlUp).Row - 1, 1)
Range("K2").Offset(0, 1).Value = WorksheetFunction.Average(rng)
VB👉 K列の最終行まで動的に範囲を取得し、平均を右隣に出力。
✅ まとめ
- WorksheetFunction → SUM, AVERAGE, MAX, MIN, STDEV, COUNT, COUNTIF, SUMIF など統計関数を活用
- Offset → 結果を隣列や下段に自在に出力
- Resize → データ範囲を動的に拡張・縮小して柔軟に対応
- 黄金パターン → 合計・平均・最大/最小・標準偏差・件数・条件付き集計を一瞬で自動化
💡 この「集計・統計 × WorksheetFunction × Offset × Resize」パターン集を使えば、売上表・勤怠表・在庫表などの 統計処理+動的集計 を一瞬で自動化できます。

