".Values"が別のモジュールから来た 'ReliabilityNumber'という配列に基づいているグラフを作成しています。正しいデータポイントを得るにはすべてうまく動作します。しかし、配列内の要素の数(グラフの 'timesteps')が16384を超えると、この数値を超えるデータポイントはグラフに表示されません。グラフが16384個以上のデータポイントを表示できない
さらに、要素数が65536を超えると、グラフは表示されなくなります。
私はExcelの最大数(Excel 2007以降では16384)と最大行数(Excel 2003以降のバージョンでは65536)と関連があると考えています。しかし、私はそれが何であるか把握することはできません。私のコードは以下の通りです(私は自宅で仕事でエクセル2010を使用し、2016年、問題はまだ2016年のために、この問題を制御しなかったの2010年である):
Dim ReliabilityChart As Object
Dim ReliabilitySeries As Series
Set ReliabilityChart = ActiveSheet.ChartObjects.Add(Left:=300, Width:=500, Top:=10, Height:=300)
With ReliabilityChart
.Chart.Type = xlLine
.Left = 600
.Width = 800
.Top = 50
.Height = 300
.Name = "ReliabilityChart1"
Set ReliabilitySeries = .Chart.SeriesCollection.NewSeries
With ReliabilitySeries
.Values = ReliabilityNumber
.Name = "Reliability on timestep #"
End With
End With
ActiveSheet.ChartObjects("ReliabilityChart1").Activate
With ActiveChart
.ChartType = xlLine
.ChartTitle.Text = "Reliability over time"
.Axes(xlCategory).TickMarkSpacing = 1600
.Axes(xlCategory).TickLabelSpacing = 1600
.Axes(xlValue).MaximumScale = 1
.Axes(xlValue).TickLabels.NumberFormat = "0%"
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Text = "Timestep (#)"
.Axes(xlValue).HasTitle = True
.Axes(xlValue).AxisTitle.Text = "Reliability (%)"
End With
Sheets(1).Range("E10").Select
私はあなたにSERIESの式が意味することを知らないわけでもありません。しかし、範囲の代わりに配列を使う利点は、ワークシートにデータポイントを必要としないということです。これは計算速度を節約します。特に、多数のデータポイントが使用される場合(> 100.000)。 – MrBaracuda
グラフにプロットされたすべての系列は、SERIES公式を使用して実行されます。大きな配列を使用する場合を除いて、数式バーに表示されます。エラーメッセージが表示されます。配列を使用する場合は、式の配列定数にリテラル値を入れる必要があります。その多くのデータをグラフにプロットしようとすると、パフォーマンスの問題は常に少なくなると思います。 – Rory