VBAでGETPIVOTDATA関数が使いたい。
VBAでもワークシート関数が使いたい時は、Object.WorksheetFunction.ワークシート関数。
ただ、ワークシート関数GETPIVOTDATAは呼び出せないので、EVALUATEメソッドを使う。
EVALUATE("式")
式は、文字列として入れる。
GETPIVOTDATAは、これ。
=GETPIVOTDATA("合計 / 金額",A3,"取引先","田中商事")
ドッキーング!
EVALUATE("GETPIVOTDATA(""合計 / 金額"",A3,""取引先"",""田中商事"")")
(´-`).。oO(引用符、多くね?
引用符の中にある引用符は、二つにしないといけないようです。
一番外側はEVALUATE。
EVALUATE("
GETPIVOTDATA(""合計 / 金額"",A3,""取引先"",""田中商事"")
")
ドッキング前を見ると、GETPIVOTDATAで、"合計 / 金額"と"取引先"と"田中商事"が、" "で囲まれているから、それぞれ""合計 / 金額"" ""取引先"" ""田中商事"" になります。
ここまでは、既に習得済み。今日のソリューションは…
(´-`).。oO(列ラベルを可変にしたいなぁ。
合計/金額と合計/個数をスイッチさせたいんです!
時間切れ。ここまで。
--------追記分11/13
とりあえず、列ラベルを変数にしよう。ためしに、金額と置く。
dim r_label as String ’列ラベル
r_label = "金額" 'テスト用
シート名に「個数」と入っているか「金額」と入っているかでIF文で分岐させたと思いますが、忘れた…
EVALUATEの中身が文字列だということを念頭に起きつつ進む。
EVALUATE("GETPIVOTDATA(""合計 /
ここまではそのまま。次は、列ラベルの変数を入れたいので、文字列はここまでだぜ!と宣言しないといけません。一度 " で閉じ、変数をつなげます。
EVALUATE("GETPIVOTDATA(""合計 / " & r_label &
ここからまた文字列だぜ!を意味するため、" で始めます。
EVALUATE("GETPIVOTDATA(""合計 / " & r_label & "
""合計 / 金額""の、終わりの""を打っていないので、そこからくっつけて完成!
EVALUATE("GETPIVOTDATA(""合計 / " & r_label & """,A3,""取引先"",""田中商事"")")
(´-`).。oO(引用符、多くね?