テーブル化された表の指定した列の
・合計値
・最大値
・最小値
を取得する方法を記載します!
VBAから
・ワークシート関数「Subtotal」
を使用することで、取得できます!
具体的には「WorksheetFunctionオブジェクト」の「Subtotal」メソッドを使用します。
合計値を取得する
ここでは例として、
・シート「data」上の
・テーブル化された表「productテーブル」の列「price」の
・合計値を取得
します。
Option Explicit
Sub sample()
Dim total As Long
Dim table As ListObject
Set table = Worksheets("data").ListObjects("productテーブル")
'列「price」の合計値を取得
total = WorksheetFunction.Subtotal(9, table.ListColumns("price").DataBodyRange)
MsgBox ("列「price」の合計値は『" & total & "』です。")
End Sub
上記を実行すると、「合計値」が取得できたことを確認できます。
最大値を取得する
ここでは例として、
・テーブル化された表「productテーブル」の列「price」の
・最大値を取得
します。
Option Explicit
Sub sample()
Dim maxValue As Long
Dim table As ListObject
Set table = Worksheets("data").ListObjects("productテーブル")
'列「price」の最大値を取得
maxValue = WorksheetFunction.Subtotal(4, table.ListColumns("price").DataBodyRange)
MsgBox ("列「price」の最大値は『" & maxValue & "』です。")
End Sub
上記を実行すると、「最大値」が取得できたことを確認できます。
最小値を取得する
ここでは例として、
・テーブル化された表「productテーブル」の列「price」の
・最小値を取得
します。
Option Explicit
Sub sample()
Dim minValue As Long
Dim table As ListObject
Set table = Worksheets("data").ListObjects("productテーブル")
'列「price」の最小値を取得
minValue = WorksheetFunction.Subtotal(5, table.ListColumns("price").DataBodyRange)
MsgBox ("列「price」の最小値は『" & minValue & "』です。")
End Sub
上記を実行すると、「最小値」が取得できたことを確認できます。
参考
上記で使用したワークシート関数「Subtotal」の詳細は、公式サイトをご確認ください。
※上記に記載した以外の値も取得できます。平均値など。