|
▼まつ君 さん今晩は
> ActiveChart.SeriesCollection(2).XValues = cRng←ここでエラー
これでうまくできると思います。試してみて下さい。
Sub 散布図3()
Dim aRng As Range, bRng As Range, cRng As Range
Dim Hanni As Single
'Q列のデータ入力範囲の行数を数える
LastRow = Range("Q65536").End(xlUp).Row
Hanni = ActiveSheet.Range(Cells(27, 17), Cells(LastRow, 17)).Count 'q=>>17列
'Hanni = 0 'とすべきでは???
With ActiveSheet
' p27:t32 にデータがあれば、as27:av32にもデータがあり、
'グラフ化するデータ領域は、提示通りのHanniなら、as27:av38にあることになります。
'Hanni=0にすれば、as27:av32ということになります。Hanni = 0 だと思うよ。
'Hanni=0でつじつまが合います。
'
'デバッグのしやすさの関係で、Address(0, 0)を使用しました。
'AS27をグラフの起点にしたとき、ar列にもQ列のデータをセットして、
'offsetの31,32,33,34は、29,30,31,32が正しいのでは。
'グラフのデータ範囲が正しく設定されてないと、エラーは解消しませんよ!!!。
'
p31 = .Range("p65536").End(xlUp).Offset(Hanni, 29).Address(0, 0) '31=>29では
p32 = .Range("p65536").End(xlUp).Offset(Hanni, 30).Address(0, 0) '32=>30では
p33 = .Range("p65536").End(xlUp).Offset(Hanni, 31).Address(0, 0) '33=>31では
p34 = .Range("p65536").End(xlUp).Offset(Hanni, 32).Address(0, 0) '34=>32では
MsgBox p34
'
Set aRng = .Range("AS27:" & p31)
Set bRng = .Range("AT27:" & p32)
Set cRng = .Range("AU27:" & p33)
Set dRng = .Range("AV27:" & p34)
End With
'
ActiveSheet.ChartObjects(1).Activate
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Source:=ActiveSheet.Range("AS27:" & p34), PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).XValues = aRng
ActiveChart.SeriesCollection(1).Values = bRng
ActiveChart.SeriesCollection(2).XValues = cRng '←ここでのエラーは解消しています
ActiveChart.SeriesCollection(2).Values = dRng
'ActiveWindow.Visible = False
'ActiveCell.Select
End Sub
|
|