![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
テーブル化された表の指定した列の
・合計値
・最大値
・最小値
を取得する方法を記載します!
![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
VBAから
・ワークシート関数「Subtotal」
を使用することで、取得できます!
具体的には「WorksheetFunctionオブジェクト」の「Subtotal」メソッドを使用します。
合計値を取得する
ここでは例として、
・シート「data」上の
・テーブル化された表「productテーブル」の列「price」の
・合計値を取得
します。
![列「price」の合計値は「1100」](https://excel-vba.work/wp-content/uploads/2021/04/vba_exceltable_subtotal_003.png)
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
上記を実行すると、「合計値」が取得できたことを確認できます。
![実行結果](https://excel-vba.work/wp-content/uploads/2021/04/vba_exceltable_subtotal_008.png)
最大値を取得する
ここでは例として、
・テーブル化された表「productテーブル」の列「price」の
・最大値を取得
します。
![列「price」の最大値は「300」](https://excel-vba.work/wp-content/uploads/2021/04/vba_exceltable_subtotal_004.png)
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
上記を実行すると、「最大値」が取得できたことを確認できます。
![実行結果](https://excel-vba.work/wp-content/uploads/2021/04/vba_exceltable_subtotal_005.png)
最小値を取得する
ここでは例として、
・テーブル化された表「productテーブル」の列「price」の
・最小値を取得
します。
![列「price」の最小値は「100」](https://excel-vba.work/wp-content/uploads/2021/04/vba_exceltable_subtotal_006.png)
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
上記を実行すると、「最小値」が取得できたことを確認できます。
![実行結果](https://excel-vba.work/wp-content/uploads/2021/04/vba_exceltable_subtotal_009.png)
参考
上記で使用したワークシート関数「Subtotal」の詳細は、公式サイトをご確認ください。
※上記に記載した以外の値も取得できます。平均値など。