• 締切済み

グラフマクロで系列を変数にする方法を教えてください

エクセルのグラフマクロについて質問します。 系列の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 当方、マクロかじりたての初心者です。 どなたか、よろしくおねがいします!

みんなの回答

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.2

実効時エラー1004 アプリケーション定義またはオブジェクト定義のエラーです かな? 式が違うようです。 ='シート名'!セル範囲 の形式なら "='" + a + "'!R2C4:R5C4" でいいはず。

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.1

>ActiveChart.SeriesCollection(1).XValues = "=sheets(a)!R2C4:R5C4" この1行についてだけですが "=sheets(a)!R2C4:R5C4" はひとかたまりの文字列です。 a が文字型の変数なら "=sheets(" + a + ")!R2C4:R5C4" で変数対応の文字列になるはずです。

victicd
質問者

お礼

早々の返答ありがとうございました。 このような指令文があったのですね。 さっそく"=sheets(" + a + ")!R2C4:R5C4"に入れ換えて動かしてみました。 がしかし、同じところで止まってしまいます。。 もう少し詳しく説明しますと、 sheet1のA2セルに”赤”と入力し、変数aとしています。 そして、”赤”という名のシートにデータが入っていて、それをグラフ化 したいと考えています。 何か、根本的にミスをしてるのでしょうか・・・。

関連するQ&A