Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » AGGREGATE関数をVBAで使うには

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2209 ビルド15629.20156 Microsoft Store)

「excel vba aggregate」
といった検索キーワードで時折アクセスがあります。

ExcelのSUBTOTAL関数の機能アップ版といえる、AGGREGATE関数をVBAから利用するには、どのようなコードを書けばいいのかを調べていらしたのでしょうか。

[スポンサードリンク]

AGGREGATE関数をVBAで使ったサンプルマクロ

以下のExcelマクロを実行すると、アクティブシートのA1:A5セルの合計がメッセージボックスに表示されます。

その際、A1:A5セルにエラー値が存在していたとしても、問題はありません。

Sub AGGREGATE関数を利用する()
 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で使うには

「WorksheetFunction」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.