Vba で小計関数を使用する方法 (例付き)
Excel のSUBTOTAL関数を使用すると、シート上に表示されているセルのみの全体的な統計を計算できます。
VBA では次の基本構文を使用して SUBTOTAL 関数を使用できます。
Sub FindSubtotal()
Range(" A16 ") = WorksheetFunction.Subtotal(9, Range(" B2:B11 "))
End Sub
この特定の例では、範囲B2:B11の表示セルの値の合計を計算し、結果をセルA16に表示します。
Subtotalメソッドの最初の引数は、使用する集計方法を指定することに注意してください。
- 1 : ミディアム
- 2 : アカウント
- 3 : アカウント
- 4 : 最大
- 5 : 最小値
- 6 : 製品
- 7 : STDEV
- 8 : STDEVP
- 9 : 合計
- 10 :VAR
- 11 :ヴァープ
次の例は、VBA でSubtotalメソッドを実際に使用する方法を示しています。
例: VBA で小計を使用する方法
さまざまなバスケットボール選手に関する情報を含む次のデータセットが Excel にあるとします。
ここで、チームが A または C に等しい行のみを表示するフィルターを適用するとします。
次のマクロを作成して、ポイント列に表示されているセルの合計を計算し、結果をセルA16に表示できます。
Sub FindSubtotal()
Range(" A16 ") = WorksheetFunction.Subtotal(9, Range(" B2:B11 "))
End Sub
このマクロを実行すると、次の出力が表示されます。
セルA16に値168が含まれていることに注目してください。
これは、ポイント列に表示されるセルの合計が 168 であることを示しています。
Subtotalメソッドの最初の引数の値を変更して、別のメトリックを計算することもできます。
たとえば、代わりに値1を使用して、ポイント列の表示セルの平均を計算できます。
Sub FindSubtotal()
Range(" A16 ") = WorksheetFunction.Subtotal(1, Range(" B2:B11 "))
End Sub
このマクロを実行すると、次の出力が表示されます。
セルA16に値24 が含まれていることに注目してください。
これは、ポイント列に表示されるセルの平均が 24 であることを示しています。
注: VBA Subtotalメソッドの完全なドキュメントはここにあります。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。