|
こんにちは。
>cellsで範囲を指定するとエラー
その時、画面はグラフシートがSelectされているはずです。
グラフシートには Cells はありません。
ActiveSheet を変数に格納するなら Worksheet型にして、
Sub try1()
Dim sh As Worksheet
Dim x1 As Long
Dim x2 As Long
Dim y1 As Long
Dim y2 As Long
Set sh = ActiveSheet
x1 = 1
x2 = 1
y1 = 1
y2 = 5
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Values = sh.Range(sh.Cells(x1, y1), sh.Cells(x2, y2))
ActiveChart.Location Where:=xlLocationAsObject, Name:=sh.Name
Set sh = Nothing
End Sub
また、Where:=xlLocationAsObject...と、ActiveSheet上のChartObjectの場合
Sub try2()
With ActiveSheet.ChartObjects.Add(200, 100, 400, 300).Chart
.ChartType = xlLineMarkers
.SeriesCollection.NewSeries.Values = Cells(1, 1).Resize(, 5)
End With
End Sub
...のようにも書けます。
>この行は何のために作られるのでしょうか。
単に、[マクロ記録]だからです。
実行時のActiveCellを一旦、SetSourceDataしてChartを作成しているだけです。
[マクロ記録]には、不要なものも記録されるケースは多いですよね。
それと同じです。
または、Range("A1:E1")をセレクトして[グラフ作成ウィザード]-[完了]という操作を
マクロ記録してみれば、また違う理解もできるでしょう。
|
|