チョコミントアイス

グラフのデータ範囲を
ActiveChart.SetSourseData Range("A10:C20")と指定するのではなく
上記のA10:C20の部分をエクセルの計算式
OFFSET(A10,0,0,COUNTA(A10:30),2)等に変更し、データの範囲が変わっても
対応できるようにしたいのです(行数が10の場合や20の場合などがあります)
つまり

ActiveChart.SetSourseDataRange("OFFSET(A10,0,0,COUNTA(A10:30),3)0")

↑こういったことをしたいのです。
しかしこのままだとVBAでエクセルのOFFSETやCOUNTAが認識されないようなのですが
どのようにすれば実行できるでしょうか;;

A 回答 (2件)

>↑こういったことをしたいのです。


お示しの
>ActiveChart.SetSourseDataRange(~~~)
の「~~~」の部分の書式がデタラメのようですが、ワークシート上での計算式は
=OFFSET(A10,0,0,COUNTA(A10:A30),30)
でよろしいでしょうか?

 先ず、「~~~」の部分を ダブルクォーテーション で括るのはおかしいです。

 次に、VBA には、[Offset プロパティ] というものが用意されていますが、上記の条件でしたら、[Resize プロパティ] の方がよいかと存じます。
 そして、ワークシートの [COUNTA 関数] につきましては、VBA 上では、
Application.WorksheetFunction.CountA(~~~)
という形で使うことができますので、

Dim DataRng As Range
Set DataRng = Sheets("Sheet1").Range("A10").Resize(Application.WorksheetFunction.CountA(Range("A10:A30")), 30)
ActiveChart.SetSourceData Source:=DataRng

みたいなことでご要望のことができるのではないでしょうか?
    • good
    • 0
この回答へのお礼

できました…
めちゃくちゃな文章になっていたのに、読み取ってくださってありがとうございました;;
本当に助かりました^^

お礼日時:2009/05/10 00:39

>データの範囲が変わっても対応できるようにしたい...


一般機能では[名前の定義]を使うと便利です。

『Excel で名前付け範囲を使用して動的なグラフを作成する』
http://office.microsoft.com/ja-jp/excel/HA011098 …
▲こちらを参照されると良いです。

または、定番で『可変範囲のグラフ』
http://www2.odn.ne.jp/excel/waza/graph.html#SEC13

VBAで設定したい場合、 qa4756933 も参考になるかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございます、しかし名前定義で設定しようとすると
http://okwave.jp/qa4939609.html
このような状況なのです…
しかし参考にさせて頂きました、ありがとうございました^^

お礼日時:2009/05/10 00:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!