電子書籍の厳選無料作品が豊富!

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」ではなく、アクティブなセルになってしまいます。
原因を教えていただけないでしょうか。よろしくお願いします。

A 回答 (2件)

こんにちは。



Charts.Addでグラフが出来ますが、その時点でのデータ範囲は現在選択されてる範囲になり、
次に、SetSourceData Sourceで範囲が変更さますので、Charts.Addの前に範囲選択をして下さい。

 Range("A1:C10").Select
 Charts.add

以上です。
 
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。結局「Charts.Addを実行する前に範囲指定しておく」ことにします。SetSourceData Sourceでは場合によっては範囲が変更されないと言うことでしょか?少し解せない部分もありますが、締め切ろうと思います。
これからも、よろしくお願いします。ありがとうございました。

お礼日時:2005/06/02 18:57

実際に試していないので、自信ないですが、


結局
Charts.AddでActiveCellのデータでグラフができるということですよね。

mySheet.Range("A1:C10")

Sheets("Sheet2").Range("A1:C10")
のようにアクティブシートを使わないで指定してみたらどうでしょうか
    • good
    • 1
この回答へのお礼

お返事ありがとうございました。結局「Charts.Addを実行する前に範囲指定しておく」ことにします。アクティブシートを使わないで範囲指定とのアドバイスですが、名前もまちまちな多数のシートにグラフを作成したかったので、アクティブシートの名前を格納するプログラムとしました。
なにぶん初心者なので、これからも質問することがあると思いますが、よろしくお願いします。

お礼日時:2005/06/02 18:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!