プロが教えるわが家の防犯対策術!

別シートからグラフをコピーして新シートにはりつけました
元データの範囲を1行下を参照するようにマクロで作成したいのですが。。。

=SERIES(系列名,Xの値,Yの値,系列番号)
の系列名とYの値を一行下の範囲を参照したいのです。

グラフから下のようにデーター範囲を取得し、一行下の行のデータ範囲に変えてグラフを変更したいです。

 ActiveChart.SeriesCollection(1).Formula = _
"=SERIES(元データ!$B$19,元データ!$C$3:$DI$3,元データ!$C19:$DI19,1)"

                    ↓ このようにしたいのですが1回ごとに19を20に打ち直さずにマクロ                       でしたいのです

ActiveChart.SeriesCollection(1).Formula = _
"=SERIES(元データ!$B$20,元データ!$C$3:$DI$3,元データ!$C20:$DI20,1)"

ループさせて 19を20につぎは20を21に・・・・・最終的には59を60行を参照するように
取得して変換していきたいのです

書き方が悪くて申し訳ありません。
どなたかわかるかた大至急教えてください。宜しくお願いいたします。

A 回答 (1件)

"=SERIES(元データ!$B$19,元データ!$C$3:$DI$3,元データ!$C19:$DI19,1)"


この部分が文字列です。
文字列を変数に入れて変数指定にしたら良いだけです。
DataStr = "=SERIES(元データ!$B$19,元データ!$C$3:$DI$3,元データ!$C19:$DI19,1)"
ActiveChart.SeriesCollection(1).Formula = DataStr

その際に変化する部分を別変数で変化させます。
数値を文字列に置き換えるにはCstr関数を使います。
よって、次のようになります。
Count = 19
CountStr = Cstr(Count)
DataStr = "=SERIES(元データ!$B$" & CountStr & ",元データ!$C$3:$DI$3,元データ!$C" & CountStr & ":$DI" & CountStr & ",1)"
ActiveChart.SeriesCollection(1).Formula = DataStr

あとはループ処理でCountをカウントアップさせてください。
    • good
    • 0
この回答へのお礼

早々に回答ありがとうございます。
質問がわかりづらいなか、とってもわかりやすくご回答いただきたすかりました。

おかげでちゃんと動かすことができました。ありがとうございました。

お礼日時:2012/01/30 21:00

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