HOME > VBAサンプル集 > オートフィルタの集計

オートフィルタの集計

 オートフィルタで絞り込んだデータを今度は集計してみましょう。VBAでデータを集計する場合はワークシート関数のSUBTOTAL関数を利用します。

 「オートフィルターの設定」で用意したデータを使います。取引先「(有)テクノ」で絞り込みました。数量と値段の合計を表示してみましょう。

オートフィルタの集計

・オートフィルタデータの集計1
Sub A_20170128_01()
Dim My_Result_1 As Long
Dim My_Result_2 As Currency


Range("A1").AutoFilter Field:=2, Criteria1:="(有)テクノ"
My_Result_1 = WorksheetFunction.Subtotal(9, Range("E:E"))
My_Result_2 = WorksheetFunction.Subtotal(9, Range("F:F"))
MsgBox My_Result_1 & vbCrLf & My_Result_2


End Sub

 MsgBoxに数量の結果と値段の合計を表示しています。SUBTOTAL関数の第1引数の9はデータの合計を表します。第1引数を3にするとデータ件数が表示されます。

・オートフィルタデータの集計2
Sub A_20170128_02()
Dim My_Result_1 As Long


Range("A1").AutoFilter Field:=2, Criteria1:="(有)テクノ"
My_Result_1 = WorksheetFunction.Subtotal(3, Range("E:E"))
MsgBox My_Result_1 - 1 & "件です。"


End Sub

*データ件数を集計する場合はタイトル行も件数としてカウントされるので、表示するときに「-1」をいれて実際の件数を表示させましょう。

エクセル職人        VBAサンプル集目次

▲TOPへ移動