7

アクティブなブック内の最大 52 の異なるタブに基づいて、ROI の棒グラフを自動的に作成する VBA for Excel 2007 プログラムを作成しました。私はほぼ完了しましたが、理解できない唯一のことは、棒グラフの色を変更する方法です。

グラフは独自のサブ関数で作成され、そのような呼び出しで呼び出されます。すべての変数は、呼び出されるたびに変化します。

Call AddChartObject(1, 1, "Example", extraWeeks, weekDifference)

それが呼び出す私のサブは次のようになります。

Sub AddChartObject(j As Integer, k As Integer, passedChartTitle As String, xtraWks As Integer, ttlWks As Integer)

    Dim topOfChart As Integer

    topOfChart = 25 + (350 * j)

    'Adds bar chart for total sales

    With ActiveSheet.ChartObjects.Add(Left:=375, Width:=475, Top:=topOfChart, Height:=325)
        .Chart.SetSourceData Source:=Sheets("Consolidation").Range("$A$" & 3 + ((17 + xtraWks) _
            * j) & ":$C$" & (4 + ttlWks) + ((17 + xtraWks) * k))
        .Chart.ChartType = xl3DColumnClustered
        .Chart.SetElement (msoElementDataLabelShow)
        .Chart.HasTitle = True
        .Chart.ChartTitle.Text = passedChartTitle & " Sales"
        .Chart.SetElement (msoElementLegendBottom)
        .Chart.SetElement (msoElementDataLabelNone)
        .Chart.RightAngleAxes = True
    End With

End Sub

棒グラフの SECOND シリーズで使用したい RGB カラーは、マーケティングの希望により (155, 187, 89) です。.chart.????.???? = RGB (155, 187, 89)これを設定するために使用できるコマンドがあると確信していWithますが、それを理解するのに非常に多くの時間を費やしましたが、何も思いつきませんでした.

4

3 に答える 3

14

やってみました

.Chart.SeriesCollection([index]).Interior.Color = RGB(155, 187, 89)

([インデックス] は、色を変更するシリーズのプレースホルダーです)?

于 2011-04-11T18:57:52.947 に答える
4

ScottyStyles と非常によく似た状況で機能しますが、最初のシリーズ コレクションでのみ機能します。そのすぐ下で同じものを使用しましたが、それは SeriesCollection(2) の色を変更していませんでした。それはデータの線形セットです。

ActiveSheet.ChartObjects("Chart 1").Activate

    ActiveChart.ClearToMatchStyle

    ActiveChart.SeriesCollection(1).Interior.Color = RGB(85, 142, 213)
    ActiveChart.SeriesCollection(2).Interior.Color = RGB(192, 0, 0)
于 2013-06-21T09:15:40.387 に答える