|
とん さん:
こんにちは。VBA質問箱には久しぶりに顔を出させていただきます。m(__)m
私はピボットはあまり使ったことがないので詳しくないのですが、
>「野菜の中のきゅうりの1月〜3月の合計金額」
他の抽出条件がどのようなものかわかりませんがGetDataで取れると思いますよ♪
>現在ピボットテーブルをVBAで作っています。
元のデータから、こんな感じでピボットテーブルを作成されたと仮定して...(Excel2000)
Sub PivotTable作成()
Dim pvt As PivotTable, arrSubTtl, arrTitle, arrField, arrPos, i As Long
arrSubTtl = Array(False, False, False, False, False, False, False, False, False, False, False, False)
arrTitle = Array("ジャンル", "名前", "月別売上", "金額")
arrField = Array(1, 1, 2, 4)
arrPos = Array(1, 2, 1, 1)
Set pvt = ActiveWorkbook.PivotCaches.Add(1, [A1].CurrentRegion.Address).CreatePivotTable("")
For i = LBound(arrTitle) To UBound(arrTitle)
With pvt.PivotFields(arrTitle(i))
.Orientation = arrField(i)
.Position = arrPos(i)
If arrTitle(i) = "ジャンル" Then
.Subtotals = arrSubTtl
End If
End With
Next
With pvt
.ColumnGrand = False
.RowGrand = False
.RefreshTable
End With
End Sub
GetDataで取得できました。RowGrandを表示させてないとダメみたいです。
Sub 合計取得()
Dim pvt As PivotTable, tmp
Set pvt = ActiveSheet.PivotTables(1)
With pvt
.RowGrand = True
tmp = .GetData("'総計' 野菜 きゅうり")
.RowGrand = False
End With
Set pvt = Nothing
MsgBox tmp
End Sub
>条件が決められたものであればいいのですが、毎回変わってしまいます。
でしたら、条件を引数で渡してやればいかがですか?
|
|