2軸の折れ線グラフの作成にて、セルA1・B1の数値を変更することにより、ワークシート上のグラフの参照位置を全て置換えるというものなのですが、
.SetSourceData Source:=ActiveSheet.・・・・
ここで(実行エラー1004、アプリ又はオブジェクトの定義エラー)どう変更すればよいのでしょうか?よろしくお願いします。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 1 Or Target.Column > 2 Then Exit Sub
Dim r,C1,C2 As String
Dim ch As ChartObject
Dim minRow,maxRow As Long
minRow = 50:maxRow = 100
If Range("A1").Value >= minRow And Range("A1").Value <= maxRow _
And Range("B1").Value >= minRow And Range("B1").Value <= maxRow Then
For Each ch In ActiveSheet.ChartObjects
ch.Activate
With ActiveChart
c1 = .SeriesCollection(1).Name
c2 = .SeriesCollection(2).Name
r = c1 & Range("A1").Value & ":" & c1 & Range("B1").Value & "," _
& c2 & Range("A1").Value & ":" & c2 & Range("B1").Value
.SetSourceData Source:=ActiveSheet.Range(r), PlotBy:=xlColumns
.SeriesCollection(1).Name = c1
.SeriesCollection(2).Name = c2
End With
Next
End Sub
A1に全てのグラフの範囲下|B1に全てのグラフの範囲上|
A2に最初のグラフの系列1|B2に次のグラフの系列1 |・・・・・
A3に最初のグラフの系列2|B3に次のグラフの系列2 |・・・・・
例えば、シートの左上に
50|70| B |C |・・・ F |G |・・・
のように入力すると個々のグラフの列を自由に変更できます。
ただし、列を指定する2行目3行目は空白でも変更しないだけでエラーになりませんが、データの無い行を選択するとエラーになります。
やってることは、SeriesCollection(1).Formula で参照先を取得して、加工してまた代入することで参照先を変更するということです。系列名とかは使ってないので自由に設定もできます。
全く問題が無い時とエラーになる時の違いがまだよく判りませんが、
しばらく使わせて頂きます。
また、困った時には質問させて頂くと思いますが、よろしくお願い致します。
ありがとうございました。m(_ _)m