シートごとに約 10 ~ 20 のグラフを含む 2 つのシートがあります。すべてのグラフは、同じ系列名を持つ同じ形式です。1 つのシリーズは「予測支出」と呼ばれ、もう 1 つのシリーズは「支出すべき額」と呼ばれます。予測支出ラインが支出シャウトビー ラインを超えたら、チャートにフラグを立てる必要があります。指定されたポイントに赤い点を付けることを考えていました。
他のデータ テーブルを作成して値を操作することで、条件付き foratting を使用して多くのトリックを使用しようとしましたが、成功しませんでした。
おそらくVBAが解決策になるでしょう。グラフで VBA を使用したことがないので、どうすればよいかわかりません。私はかなりの調査を行ってきましたが、チャートの経験が浅いため、必要に応じてコードを変更する方法がわかりません。
2シリーズの配列を比較することが答えになると思います。これは、チャートごとにループしてから、シートごとにループする必要があります。
私には使えると思われるこのコードを見つけましたが、何が参照されているのかわかりません。これは、1つのシリーズを持つ1つのチャートのみであると仮定していると推測しています:
Dim chartIterator As Integer, pointIterator As Integer, _
seriesArray() As Variant
For chartIterator = 1 To ActiveSheet.ChartObjects.Count
seriesArray = ActiveWorkbook.Sheets("Sheet1").ChartObjects(chartIterator). _
chart.SeriesCollection(1).Values
For pointIterator = 1 To UBound(seriesArray)
If seriesArray(pointIterator) >= 0 Then
ActiveWorkbook.Sheets("Sheet1").ChartObjects(chartIterator). _
chart.SeriesCollection(1).Points(pointIterator).Interior.Color = _
RGB(146, 208, 80)
Else
ActiveWorkbook.Sheets("Sheet1").ChartObjects(chartIterator). _
chart.SeriesCollection(1).Points(pointIterator).Interior.Color = _
RGB(255, 0, 0)
End If
Next pointIterator
Next chartIterator
私がそれを理解して繰り返すことができるように、あなたの答えを説明してください。
お時間をいただきありがとうございます。