- 締切済み
エクセル2003のvba
エクセル2003のvbaについて質問です 以下のようなマクロを作成したのですが Chart.SetSourceData メソッドのSheets(1)をマクロを実行した時点のアクティブシートにする方法を教えてください。 Sub グラフ() Charts.Add ActiveChart.ChartType = xlXYScatterLinesNoMarkers ActiveChart.SetSourceData Source:=Sheets(1).Range("n1:n100,q1:q100"), _ PlotBy:=xlColumns ActiveChart.Location Where:=xlLocationAsNewSheet With ActiveChart.Axes(xlValue) .HasMajorGridlines = False End With ActiveChart.HasLegend = False end sub
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- dogs_cats
- ベストアンサー率38% (278/717)
2003は過去に使用していましたが、現在は持ちあわせていませんので間違っていた場合はご容赦下さい。 シートインデックス番号を使用したシートの指定をされています。Charts.Addでチャートシートを新規に作成されてるのだと思います。このチャートが一番左のシートに配置されるとsheet(1)にグラフシートになる可能性があるのではないかと思うのですが。回避するために変数に格納しておくのは如何でしょう。 Sub グラフ() Dim ws as worksheet 'sheet(1)を変数wsに格納 set ws=sheet(1) Charts.Add ActiveChart.ChartType = xlXYScatterLinesNoMarkers ActiveChart.SetSourceData Source:=ws.Range("n1:n100,q1:q100"), _ PlotBy:=xlColumns ActiveChart.Location Where:=xlLocationAsNewSheet With ActiveChart.Axes(xlValue) .HasMajorGridlines = False End With ActiveChart.HasLegend = False 'sheet(1)をアクティブにする。 ws.activate end sub