2
With ActiveWorkbook.Sheets(1)
INSPECT_CHARTS_NUMBER = .ChartObjects.Count
For c= 1 To .ChartObjects.Count
Set INSPECT_CHART = .ChartObjects(c).Duplicate

.ChartObjects(c).Chart.SetSourceData Source:=.Range("e4:h4")

Next lngC
End With

VBA でグラフのソース データを変更するために上記を実行しますが、この行.Chart.SetSourceData Source:=.Range("e4:h4")は機能しますが、そのグラフに複数のシリーズがある場合、これは機能しません。

すべてのシリーズのソースデータを取得するにはどうすればよいですか? また、それらを個別に変更するにはどうすればよいですか?

4

3 に答える 3

3

ここに例があります

アクティブ チャートのシリーズ コレクションが と から値を選択しているA1:A5としC1:C5ます。したがって、以下のコードはソースをA8:A12andに変更しますC8:C12

Dim sc As SeriesCollection
Dim i as Long, j as Long

j = 1

For i = 1 To ActiveChart.SeriesCollection.Count
    ActiveChart.SeriesCollection(i).Values = "=Sheet1!R8C" & j & ":R12C" & j
    j = j + 2 '<~~ Adding 2 for Col C
Next

スクリーンショット

ここに画像の説明を入力

ここに画像の説明を入力

于 2013-04-19T09:16:19.133 に答える
3

使用する.seriescollection

Set ChartSeries = ChartObj.Chart.SeriesCollection.NewSeries

With ChartSeries
    .Name = "Chart Series 1"
    .Values = Array(1, 2, 3, 4, 5)
    .XValues = Array("alpha", "beta", "gamma", "delta", "epsilon")
End With

このリンクの詳細。

于 2013-04-19T09:17:12.470 に答える