| 
    
     |  | こんにちは。 >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")をセレクトして[グラフ作成ウィザード]-[完了]という操作を
 マクロ記録してみれば、また違う理解もできるでしょう。
 
 |  |