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 で他の一般的なタスクを実行する方法について説明します。

VBA:範囲内の値を追加する方法
VBA:範囲の平均値を計算する方法
VBA: 範囲内の行数をカウントする方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です