複数の系列を折れ線グラフに動的に追加しようとしています。シリーズがいくつあるか事前にわからないので、動的にする必要があります。私が思いついたがうまくいかないのは次のとおりです。
シート ActiveSheet (または Sheets("Data")) には、XValues を含む C14 から Cend までの行と、E14:Eend から R14:Rend までの列があり、"end" は、列 C によって決定されるデータの最後の行を示します。行 9 に格納されます。XValues はすべてのシリーズで同じです。
私の大きな問題は、すべてのデータ列をシリーズとしてチャートにそれぞれの名前とともに動的に追加する方法が見つからないことです。私はVBAの専門家ではないので、親切にお願いします。私はすでにさまざまなソースを読み、多くのスクリプトを試しましたが、どれも機能していないようです。Object Catalog は少し役に立ちましたが、私の問題は解決しません。
Sub MakeChart()
Dim LastColumn As Long
Dim LastRow As Long
Dim i As Integer
Dim u As Integer
Dim NameRng As String
Dim CountsRng As Range
Dim xRng As Range
LastColumn = ActiveSheet.Cells(8, Columns.Count).End(xlToLeft).Column
ColumnCount = LastColumn - 4
LastRow = ActiveSheet.Range("C" & ActiveSheet.Rows.Count).End(xlUp).Row
' Debug.Print ("Last Column: " & LastColumn & " Count: " & ColumnCount & " LastRow: " & LastRow)
Charts.Add
With ActiveChart
.ChartType = xlLineMarkers
.HasTitle = True
.ChartTitle.Text = "Test"
End With
For i = 1 To ColumnCount
u = i + 4
NameRng = Sheets("Data").Range("R9:C" & u).Value
Set xRng = Sheets("Data").Range("R14:C3", "R" & LastRow & ":C3")
Set CountsRng = Sheets("Data").Range("R14:C" & u, "R" & LastRow & ":C" & u)
' Debug.Print ("CountsRng: R14:C" & u & ", R" & LastRow & ":C" & u & " NameRng: " & NameRng & " xRng: R14:C3 , R" & LastRow & ":C3")
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(i).XValues = xRng
ActiveChart.SeriesCollection(i).Values = CountsRng
ActiveChart.SeriesCollection(i).Name = NameRng
Next i
End Sub