【VBA】オートフィルタを設定し絞り込み(文字列)をして、絞り込んだ結果の数値の合計を取得する

VBAから
 ・オートフィルタの設定
 ・絞り込み(文字列)
 ・絞り込んだ結果の数値を合計を取得
する方法を記載します!

前提

シート「sample」の以下の表に対して、
 ・オートフィルタの設定
 ・絞り込み(文字列)
 ・絞り込んだ結果の数値の合計を取得
します。

VBAコード

ここでは例として、
 ・オートフィルタの設定と1列目「名前」を文字列「佐藤」で絞り込み
 ・絞り込んだ結果のC列「売上」の合計を取得
します。

Option Explicit

Sub sample()
    
    Dim total As Long

    'オートフィルタの設定と1列目「名前」を文字列「佐藤」で絞り込み
    Worksheets("sample").Range("B2").AutoFilter field:=1, Criteria1:="佐藤"
    
    '絞り込んだ結果のC列「売上」の合計を取得
    total = WorksheetFunction.Subtotal(9, Worksheets("sample").Range("C:C"))
    
    MsgBox "絞り込んだ結果の売上の合計は『" & total & "』です。"
    
End Sub

1列目を絞り込むため、「AutoFilter」の引数「field」に「1」を指定します。

絞り込み条件は、「AutoFilter」の引数「Criteria1」に設定します。
「ワイルドカード」の使用も出来ます。 例) Criteria1:=”*藤”

絞り込んだ結果の数値の合計は、ワークシート関数「Subtotal」で実現します。

実行結果

以下ができました。 
・オートフィルタの設定
・絞り込み(文字列)
・絞り込んだ結果の数値の合計を取得


タイトルとURLをコピーしました