• 締切済み

マクロについて(Excel2002)

マクロを使ってグラフ作成をし、それにデータラベルをつける・・・ということをしています。 グラフシートに作成すると、マクロに「Graph1」シートに・・・と記憶され2回目以降にマクロを作成するとシート名が異なるためエラーになります。 こういった場合どうしたらよいのでしょうか?

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

私の乏しい経験からすると (1) ActiveChart.Location Where:=xlLocationAsNewSheet とすると新グラフシートにGraph1、Graph2、3・・とグラフシートが出来る。 (2)ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"とするとデータのあるワークシートに重なって 書かれる。ご質問のケースは(1)のケースでしょう。 ----- (1)グラフシートを手操作で指定しておいてActivechartと いう表現で逃げる。 (2)Addしたときに、Nameプロパティで名前を知りグラフシート名を知り、それを使う。下記例でCharts(n).SeriesCollection(1)・・のところ。 n = Charts.Add.Name MsgBox n Charts(n).ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:A5"), PlotBy:= _ xlColumns ActiveChart.Location Where:=xlLocationAsNewSheet Charts(n).SeriesCollection(1).ApplyDataLabels Type:= _ xlDataLabelsShowValue, AutoText:=True, LegendKey:=False (3)前に作ったグラフシートが要らないなら Sub test03() ActiveSheet.Delete End Sub で削除して、問題を簡単にする。 (4)別途(注)グラフ名を知り(下記では"グラフ 5"の部分)それを指定して、オブジェクトを掴まえる。 ActiveSheet.ChartObjects("グラフ 5").Activate ActiveChart.ChartArea.Select ActiveWindow.Visible = False Selection.Delete (注)グラフエリア上で右クリックし、「グラフウインドウ」 をクリックすると、タイトルに出てくる。 (2)以外は、どれも一部手操作」が入るので、(2)辺りが 使えないか、考えて見てください。ヒントになれば幸いです。 要は私は一番難しいと思う、「オブジェクトの特定ないし表現方法」の問題で、(1)名前による(2)Itemによる(3)Active何々やSelected何々による(4)その他のどれかを使わねばならないと思います。

kunikunichan
質問者

お礼

かなり難しいのですね。。。 でも何とかチャレンジしてみますね。 どうもありがとうございました。

関連するQ&A