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

エクセルのグラフマクロについて質問します。
系列のxの値(Yの値も)の設定で、
グラフ化したいワークシートと範囲を変数にすることはできますか?

目的は、複数あるシートの複数のセルをグラフ化したい、というものです。
変数にてシート名と範囲を指定したいです。
↓のようなプログラムを作成してみましたが、どうもうまく動きません。
12行目で止まってしまいます。
13行目はでたらめですが、範囲も変数bにできないかなぁと、勝手にイメージで作ってみました。

Sub ()
n = Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To n
Sheets("SHEET1").Select
Range("A" & i).Select
a = ActiveCell.Value
Sheets(a).Select
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets(a).Range("V22")
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "=sheets(a)!R2C4:R5C4"
ActiveChart.SeriesCollection(1).Values = "=sheets(a)!range(b)"
ActiveChart.Location Where:=xlLocationAsObject, Name:=Sheets(a)

Next i
End Sub

当方、マクロかじりたての初心者です。
どなたか、よろしくおねがいします!

A 回答 (2件)

実効時エラー1004


アプリケーション定義またはオブジェクト定義のエラーです

かな?

式が違うようです。
='シート名'!セル範囲 の形式なら

"='" + a + "'!R2C4:R5C4"
でいいはず。
    • good
    • 0

>ActiveChart.SeriesCollection(1).XValues = "=sheets(a)!R2C4:R5C4"



この1行についてだけですが
"=sheets(a)!R2C4:R5C4" はひとかたまりの文字列です。

a が文字型の変数なら

"=sheets(" + a + ")!R2C4:R5C4"
で変数対応の文字列になるはずです。
    • good
    • 1
この回答へのお礼

早々の返答ありがとうございました。
このような指令文があったのですね。
さっそく"=sheets(" + a + ")!R2C4:R5C4"に入れ換えて動かしてみました。
がしかし、同じところで止まってしまいます。。

もう少し詳しく説明しますと、
sheet1のA2セルに”赤”と入力し、変数aとしています。
そして、”赤”という名のシートにデータが入っていて、それをグラフ化
したいと考えています。

何か、根本的にミスをしてるのでしょうか・・・。

お礼日時:2009/06/19 19:47

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

このQ&Aを見た人はこんなQ&Aも見ています