私の乏しい経験からすると
(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)その他のどれかを使わねばならないと思います。
お礼
かなり難しいのですね。。。 でも何とかチャレンジしてみますね。 どうもありがとうございました。