Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


29552 / 76732 ←次へ | 前へ→

【52460】Re:SeriesCollectionの使い方
発言  n  - 07/11/14(水) 22:57 -

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

0 hits

【52457】SeriesCollectionの使い方 gigi 07/11/14(水) 19:39 質問
【52460】Re:SeriesCollectionの使い方 n 07/11/14(水) 22:57 発言
【52467】Re:SeriesCollectionの使い方 gigi 07/11/15(木) 10:12 お礼

29552 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free