Excel VBA質問箱 IV

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

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


3911 / 13645 ツリー ←次へ | 前へ→

【59529】Cellsを使用したグラフデータ範囲 ts22 08/12/16(火) 21:55 質問[未読]
【59531】Re:Cellsを使用したグラフデータ範囲 kanabun 08/12/17(水) 10:16 発言[未読]
【59543】Re:Cellsを使用したグラフデータ範囲 ts22 08/12/17(水) 19:51 お礼[未読]

【59529】Cellsを使用したグラフデータ範囲
質問  ts22  - 08/12/16(火) 21:55 -

引用なし
パスワード
   こんにちは。
質問があります。

X軸もY軸も変化する散布図を作成したいのですが、汎用性を持たせるため、
Cellsを使って範囲指定をしたいと思っています。

下記をfor i=1 to 2とした場合、どのように指示をすればよいのでしょうか?
特に、"=シート1!R3C1:R21C1"をどうすべきかがわかりません。
   
  ActiveChart.SeriesCollection(1).XValues = "=シート1!R3C1:R21C1"
  ActiveChart.SeriesCollection(1).Values = "=シート1!R3C2:R21C2"
  ActiveChart.SeriesCollection(2).XValues = "=シート1!R3C3:R21C3"
  ActiveChart.SeriesCollection(2).Values = "=シート1!R3C4:R21C4"

アドバイスをよろしくお願いします。


【59531】Re:Cellsを使用したグラフデータ範囲
発言  kanabun  - 08/12/17(水) 10:16 -

引用なし
パスワード
   ▼ts22 さん:

最初の範囲[シート1!R3C1:R21C1]を rng とすると、
次の範囲は rngを右へ1列シフトしたものなっています
その次の範囲も また同様です。

  ActiveChart.SeriesCollection(1).XValues = rng
  ActiveChart.SeriesCollection(1).Values = rng.Offset(,1)
  ActiveChart.SeriesCollection(2).XValues = rng.Offset(,2)
  ActiveChart.SeriesCollection(2).Values = rng.Offset(,3)

> for i=1 to 2とした場合、どのように指示をすればよいのでしょうか?

Sub Test()
  Dim i As Long, j As Long
  Dim rng As Range
  
  Set rng = Worksheets("シート1").Range("A3:A21")
  With ActiveChart.SeriesCollection
    For i = 1 To .Count
      .Item(i).XValues = rng.Offset(, j)
      .Item(i).Values = rng.Offset(, j + 1)
      j = j + 2
    Next
  End With
End Sub

といった感じで、範囲そのものを 系列の XValues,Valuesプロパティに
渡すことができます。

【59543】Re:Cellsを使用したグラフデータ範囲
お礼  ts22  - 08/12/17(水) 19:51 -

引用なし
パスワード
   ▼kanabun さん:

なるほど!
ありがとうございます!!
仕事でグラフ作成処理を楽にしたかったのですが、
作成方法がよくわからず困っていました。
助かりました。

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