VBAを使用して作成している一連のグラフがあります(以下のコード)。
シリーズの名前をシリーズ1とシリーズ2から現在の状態とソリューションの状態に変更するのに問題があります。
私は取得し続けます
オブジェクト変数またはWithブロック変数が設定されていません
エラー。
ただし、srs1
およびsrs2
コードがないと、チャートは問題なく機能します(シリーズ名が間違っているだけです)。
私はこれを修正する方法を調べましたが、受け取った答えは私にはうまくいきません。
これを行う別の方法を知っている人はいますか?
Sub MA()
Dim Srs1 As Series
Dim Srs2 As Series
Dim i As Integer
Dim MAChart As Chart
Dim f As Integer
f = 2 * Cells(2, 14)
For i = 1 To f Step 2
Set MAChart = ActiveSheet.Shapes.AddChart(Left:=750, Width:=400, Top:=130 + 50 * (i - 1), Height:=100).Chart
With MAChart
.PlotBy = xlRows
.ChartType = xlColumnClustered
.SetSourceData Source:=ActiveSheet.Range("Q" & 1 + i & ":Z" & 2 + i)
.Axes(xlValue).MaximumScale = 4
.Axes(xlValue).MinimumScale = 0
.HasTitle = True
.ChartTitle.Text = "Provider Load for " & Cells(i + 1, 15)
'where errors start- works fine up to this point
Set Srs1 = ActiveChart.SeriesCollection(1)
Srs1.Name = "Current State"
Set Srs2 = ActiveChart.SeriesCollection(2)
Srs2.Name = "Proposed Solution"
End With
Next i
End Sub
これらの行を変更してみてください...
_ Set Srs1 = ActiveChart.SeriesCollection(1)
Srs1.Name = "Current State"
Set Srs2 = ActiveChart.SeriesCollection(2)
Srs2.Name = "Proposed Solution"
_
に.。
_ .SeriesCollection(1).Name = "Current State"
.SeriesCollection(2).Name = "Proposed Solution"
_
Withブロック内ですでにMAChart
を使用しているので、他のプロパティの場合と同じ方法で.SeriesCollection(x).Name
プロパティにアクセスできるはずです。
上記のコードでMAChartを作成しているときに、ActiveChartを参照するコードで問題が発生していると思います(存在しないと思います)。
Set Srs1 = MAChart.SeriesCollection(1)
Srs1.Name = "Current State"
Set Srs2 = MAChart.SeriesCollection(2)
Srs2.Name = "Proposed Solution"