- ベストアンサー
Excel VBAで、散布図のデータ範囲が正しく指定されない
VBA初心者です。 アクティブシート上に、散布図を作成したいのですが・・・ Dim mySheet, mySheetName Set mySheet = ActiveSheet mySheetName = ActiveSheet.Name Charts.Add ActiveChart.ChartType = xlXYScatter ActiveChart.SetSourceData Source:=mySheet.Range("A1:C10") ActiveChart.Location Where:=xlLocationAsObject, Name:=mySheetName これを実行させた時アクティブなセルに数字が存在すると、データ範囲が「A1:C10」ではなく、アクティブなセルになってしまいます。 原因を教えていただけないでしょうか。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 Charts.Addでグラフが出来ますが、その時点でのデータ範囲は現在選択されてる範囲になり、 次に、SetSourceData Sourceで範囲が変更さますので、Charts.Addの前に範囲選択をして下さい。 Range("A1:C10").Select Charts.add 以上です。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
実際に試していないので、自信ないですが、 結局 Charts.AddでActiveCellのデータでグラフができるということですよね。 mySheet.Range("A1:C10") を Sheets("Sheet2").Range("A1:C10") のようにアクティブシートを使わないで指定してみたらどうでしょうか
お礼
お返事ありがとうございました。結局「Charts.Addを実行する前に範囲指定しておく」ことにします。アクティブシートを使わないで範囲指定とのアドバイスですが、名前もまちまちな多数のシートにグラフを作成したかったので、アクティブシートの名前を格納するプログラムとしました。 なにぶん初心者なので、これからも質問することがあると思いますが、よろしくお願いします。
お礼
お返事ありがとうございます。結局「Charts.Addを実行する前に範囲指定しておく」ことにします。SetSourceData Sourceでは場合によっては範囲が変更されないと言うことでしょか?少し解せない部分もありますが、締め切ろうと思います。 これからも、よろしくお願いします。ありがとうございました。