「excel vba aggregate」
といった検索キーワードで時折アクセスがあります。
ExcelのSUBTOTAL関数の機能アップ版といえる、AGGREGATE関数をVBAから利用するには、どのようなコードを書けばいいのかを調べていらしたのでしょうか。
AGGREGATE関数をVBAで使ったサンプルマクロ
以下のExcelマクロを実行すると、アクティブシートのA1:A5セルの合計がメッセージボックスに表示されます。
その際、A1:A5セルにエラー値が存在していたとしても、問題はありません。
MsgBox _
WorksheetFunction.Aggregate(9, 6, Range("A1:A5"))
End Sub
AGGREGATE関数を使って、エラー値を無視して合計を求めるExcelの計算式をご紹介しました。
これと似たことをExcel VBAから行っているのが、上記のマクロです。
WorksheetFunction.Aggregateを使うならExcelで検証してから
WorksheetFunction.Aggregateメソッドの引数のほとんどは、ExcelでAGGREGATE関数を使うときと同じように指定します。
ただし、特に重要な第1引数・第2引数は、VBE(Visual Basic Editor)でいくら触っても、何を指定すればいいのかは全くわかりません。
まずExcel上で何を指定すればいいのかを確認すればいいのかを調査して、それからVBAのコードにしましょう。
第3引数にはRangeオブジェクトを指定
WorksheetFunction.Aggregateメソッドの第3引数には、セルを表すRangeオブジェクトを指定する必要がありますから、
Excel上でセル範囲を
=AGGREGATE(9, 6, A1:A5)
のようにした場合でも、上記のマクロのように
WorksheetFunction.Aggregate(9, 6, Range("A1:A5"))
Rangeオブジェクトを取得する式(コード)にしなければなりません。
最終更新日時:2022-10-13 05:25
Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » AGGREGATE関数をVBAで使うには