|
系列から数式を取得し、カンマ区切りで分解するという方法は良いと思います。
ただ、拝見したような複雑なコードが必要なのかは分かりません。
もし既存のグラフに、コピー&ペーストでデータを繰り返し追加していたら、
SERIES関数の数式がヘンな形になってしまうのは知ってますが、そのようなプロット
範囲の拡大方法をしていないなら、最も単純な 4つの引数を持つ数式であるはず
です。即ち
=SERIES(系列名の文字列またはその参照, 項目軸範囲, 数値軸範囲, 系列のIndex)
ですから単純に
Dim SR As Series
Dim SeriAry As Variant
Dim x As Integer
Dim ShN As String, PltAd As String
Set SR = ActiveChart.SeriesCollection(1)
SeriAry = Split(SR.Formula, ",")
x = InStr(1, SeriAry(2), "!")
ShN = Left$(SeriAry(2), x - 1)
PltAd = Right$(SeriAry(2), Len(SeriAry) - x)
と文字列を抜き出して
Worksheets(ShN).Range(PltAd)
をプロットしているデータ範囲、とすればよいと思います。
|
|