Excel VBA質問箱 IV

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

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


9152 / 13646 ツリー ←次へ | 前へ→

【28932】グラフ表示値の変更・更新 たかし 05/9/18(日) 18:26 質問[未読]
【29001】Re:グラフ表示値の変更・更新 りん 05/9/20(火) 23:34 回答[未読]
【29073】Re:グラフ表示値の変更・更新 たかし 05/9/23(金) 2:00 お礼[未読]

【28932】グラフ表示値の変更・更新
質問  たかし  - 05/9/18(日) 18:26 -

引用なし
パスワード
   お世話になっております。
まだまだ勉強不足で、皆さんの力をお貸しください。

Sheet1にデータが入力されています。
グラフシートにSheet1のデータでグラフを2つ作成しています。
グラフ1は、A列とCからE列の値
グラフ2は、A列とFからH列の値
になっています。
Sheet1のデータを新規に作成した場合や、更新した際に、
範囲を設定するマクロを作成したのですが、
グラフ1は、AからE列の、グラフ2は、AからH列のグラフが
作成されてしまいます。
うまく表示する方法を教えてください。
よろしくお願いいします。

Sub グラフ表示()

  Dim rowcount1
  
  rowcount1 = Sheets(1).Range("A65536").End(xlUp).Row
  
  Sheets("グラフ").Select
  ActiveSheet.ChartObjects("グラフ 1").Activate
  ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range( _
    "A1:A" & rowcount1, "C1:E" & rowcount1), PlotBy:=xlColumns
  
  ActiveWindow.Visible = False
  ActiveSheet.ChartObjects("グラフ 2").Activate
  ActiveChart.SetSourceData Source:=Sheets("i-MAC_Offset").Range( _
    "A1:A" & rowcount1, "F1:H" & rowcount1), PlotBy:=xlColumns

End Sub

【29001】Re:グラフ表示値の変更・更新
回答  りん E-MAIL  - 05/9/20(火) 23:34 -

引用なし
パスワード
   たかし さん、こんばんわ

>グラフ1は、A列とCからE列の値
>グラフ2は、A列とFからH列の値
>になっています。
ダブルクォーテーションの位置がおかしいです。
Rangeオブジェクトの中の範囲を示す文字列の中に,入るのではなく、左上のセル範囲と右下のセル範囲を指定したことになっているので、つながってしまっています。
↓確認
Sub test2()
  rowcount1 = 10
  With Sheets("Sheet1")
   MsgBox .Range("A1:A" & rowcount1, "C1:E" & rowcount1).Address
   MsgBox .Range("A1:A" & rowcount1 & ", C1:E" & rowcount1).Address
  End With
End Sub

なので、
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range( _
    "A1:A" & Rowcount1 & ",C1:E" & Rowcount1), PlotBy:=xlColumns

こんな感じです。

【29073】Re:グラフ表示値の変更・更新
お礼  たかし  - 05/9/23(金) 2:00 -

引用なし
パスワード
   りんさま

お礼が遅くなり、すみませんでした。
ありがとうございます。うまくいきました。
ダブルコーテーションと、&の使い方ですね。
今後は気をつけます。
勉強になりました。ありがとうございました。

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