Excel VBA質問箱 IV

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

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


29351 / 76738 ←次へ | 前へ→

【52669】SetSourceData Source:=Sheets("Sheet1").Range(自動指定方法)
質問  トモ  - 07/11/25(日) 14:53 -

引用なし
パスワード
   VBA初心者です、以下、お教えいただけないでしょうか?

下のようなシートにデータが取り込まれており(カラム数も行数も可変)、
Aカラム=時間軸に応じた部品ごとの折れ線グラフを、マクロで自動生成したいと思っております。
質問主旨としては、SetSourceData Source:=Sheets("IOPS").Rangeで、
Rangeを、データのある範囲を自動指定するには、どうすればいいでしょうか?

  A   B   C   D   ...
1     部品1 部品2 部品3 ...
2 time1 x.x1 y.y1 z.z1 ...
3 time2 x.x2 y.y2 z.z2 ...
4 time3 x.x3 y.y3 z.z3 ...
. ...  ...  ...  ...  ...

マクロRECORDERから、

 Charts.Add
 ActiveChart.ChartType = xlLineMarkers
 ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A2:Q762"), PlotBy:= _
 xlColumns

のようにRangeを "A2:Q762"と指定すればできますが、カラム、行数は可変のため、

 Dim EndRow, EndCol
  EndRow = Sheets("IOPS").Range("$A65536").End(xlUp).Row
  EndCol = Sheets("IOPS").Range("$B2").End(xlToRight).Column

 Charts.Add
 ActiveChart.ChartType = xlLineMarkers
 ActiveChart.SetSourceData Source:=Sheets("IOPS").Range(Cells(2, 1), Cells(EndRow, EndCol)), PlotBy:= _
    xlColumns

などとすると、マクロ・エディターでの継続ボタン実行時、以下エラーになります。

 実行時エラー '1004':
 'Cells'メソッドは失敗しました: '_Global'オブジェクト

このエラーの後、EndRow や EndColにマウスを当てると、正しい数値は入っているようです。
ただし、Range(Cells(2, 1), Cells(EndRow, EndCol))の代わりに、
Range(Cells(2, 1), Cells(762, 17)) としても、上と同じエラーになります。
(つまりRange指定では Cellsは合わない使用法なのでしょうか.
Cellsに拘らず、単にデータのある最下行、一番右側をどうやって SetSourceDate Source:=以下に自動的に組み込めばいいでしょうか?)

以上、ご教示いただきたく、よろしくお願いいたします。
0 hits

【52669】SetSourceData Source:=Sheets("Sheet1").Range(自動指定方法) トモ 07/11/25(日) 14:53 質問
【52670】Re:SetSourceData Source:=Sheets("S... かみちゃん 07/11/25(日) 15:00 発言
【52680】Re:SetSourceData Source:=Sheets("S... トモ 07/11/26(月) 10:57 お礼

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