0

シートごとに約 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

私がそれを理解して繰り返すことができるように、あなたの答えを説明してください。

お時間をいただきありがとうございます。

4

1 に答える 1