4

ピボット グラフとそれに関連付けられた vba の新機能。しかし、どの州に属しているかに応じて、棒グラフの色を変更しようとしています。グラフで条件付き書式を使用できなかったので、マクロを試しました。写真をアップロードできないので、テーブルは次のようになります。

Prov/Name/Period/Value
ON: Name1, Dec14, 100
    Name2, Dec13, 200
BC: Name1, Dec14, 400
    Name2, Dec13, 600
SK: Name1, Dec14, 100
    Name2, Dec13, 2000

私のピボット チャートは、このデータを棒グラフで表示し、各棒は同じ色です。BC 行フィールドに該当するすべてのシリーズを黄色で表示して、残りのシリーズに対して強調表示したいと思います。これまでのところ、これを手作業で行っており、vba マクロを作成しようとしましたが、チャートの Prov 行フィールドを参照する際にどこから始めればよいかさえわかりません。

4

1 に答える 1

0

わかりました。参照する必要があるグラフの項目は XValues です。XValues は、配列または範囲にすることができます。何らかの理由で、xvalues(x) でループすることはできません。代わりに、それを変数に割り当てる必要があり、それをループして特定の値を確認できます。次のコードを検討してください。ああ、ピボットチャートが変化するイベントにコードを添付する必要があるかもしれません。

Dim ch As ChartObject, Counter As Integer, XValueArr() As Variant

Set ch = Sheet1.ChartObjects("Chart 1") 'this is your pivotchart

XValueArr() = ch.Chart.SeriesCollection(1).XValues 'assign the XValues property to an array

'loop through the array and check the value
For Counter = LBound(XValueArr) To UBound(XValueArr)
    If Left(XValueArr(Counter), 2) = "BC" Then
    ch.Chart.SeriesCollection(1).Points(Counter).Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent2
    End If
Next Counter
于 2015-10-15T02:35:29.630 に答える