範囲からではなく、配列データからチャート (二重 Y 軸折れ線チャートなど) を作成することは可能ですか? もしそうなら、どのように?
62649 次
2 に答える
16
はい。チャート上のオブジェクトのXValues
およびValues
プロパティに配列を割り当てることができます。Series
例:
Dim c As Chart
Dim s As Series
Dim myData As Variant
Set c = ActiveChart ' Assumes a chart is currently active in Excel...
Set s = c.SeriesCollection(1)
myData = Array(9, 6, 7, 1) ' or whatever
s.Values = myData
于 2012-05-13T14:40:27.793 に答える
9
Excel 2007 以降では配列をチャート シリーズに割り当てることができますが、以前のバージョンでは、各シリーズの長さに 255 文字の制限があると思います。この制限を回避するために私が使用した方法を、次のランダム ウォークの例に示します。
Sub ChartArray()
Dim x(0 To 1000, 0 To 0) As Double
Dim y(0 To 1000, 0 To 0) As Double
x(0, 0) = 0
y(0, 0) = 0
For i = 1 To 1000
x(i, 0) = i
y(i, 0) = y(i - 1, 0) + WorksheetFunction.NormSInv(Rnd())
Next i
Charts.Add
ActiveChart.ChartType = xlXYScatterLinesNoMarkers
With ActiveChart.SeriesCollection
If .Count = 0 Then .NewSeries
If Val(Application.Version) >= 12 Then
.Item(1).Values = y
.Item(1).XValues = x
Else
.Item(1).Select
Names.Add "_", x
ExecuteExcel4Macro "series.x(!_)"
Names.Add "_", y
ExecuteExcel4Macro "series.y(,!_)"
Names("_").Delete
End If
End With
ActiveChart.ChartArea.Select
End Sub
別の方法として、配列に名前を割り当て (上記の回避策と同様)、割り当てられた名前を参照するようにシリーズを設定します。これは、xls 形式で保存する限り、すべてのバージョンで問題なく動作しますが、新しい xlsx/xlsm/xlsb 形式で保存する場合、8192 文字の名前付き配列には長さ制限があるようです。
于 2012-05-14T09:43:26.920 に答える