プロが教える店舗&オフィスのセキュリティ対策術

VBAでのグラフ作成について質問です。

Sheet1のA2:A10にx軸の値、Sheet1のD2:D10にy軸の値を設定した折れ線付き散布図を作成したいと思い、以下のようなマクロを組みました。

Sub Test()
Dim chart1 As Chart
Set chart1 = Charts.Add
chart1.SetSourceData Worksheets("Sheet1").Range("A2:A10, D2:D10")
chart1.ChartType = xlXYScatterLines
End Sub

実行してみると、x軸に設定したセルがy軸の値になってしまい、
xの値が空欄の2つの折れ線グラフが現れてしまいます。

A2:A10をx軸の値に、D2:D10をy軸の値にしてグラフを作成するには上記のマクロをどのように変更すればよいのでしょうか?

A 回答 (2件)

変更前:


Sub Test()
Dim chart1 As Chart
Set chart1 = Charts.Add
chart1.SetSourceData Worksheets("Sheet1").Range("A2:A10, D2:D10")
chart1.ChartType = xlXYScatterLines
End Sub

変更後:
Sub Test()
Dim chart1 As Chart
Set chart1 = Charts.Add
chart1.ChartType = xlXYScatterLines
chart1.SetSourceData Worksheets("Sheet1").Range("A2:A10, D2:D10")
End Sub

でいいです。種も仕掛けも無く,2行を前後に入れ替えただけです。
新しいマクロの記録で記録マクロを録って参考にしてみてください。
    • good
    • 0
この回答へのお礼

確かに2行を入れ替えると実行することができました。
ありがとうございます。

お礼日時:2010/06/27 23:22

こんな風な感じでどうでしょうか。



Dim chart1 As Chart

Set chart1 = Charts.add
chart1.ChartType = xlXYScatterLines
With chart1
With .SeriesCollection(1)
.Name = "='Sheet1'!○○:○○" '系列名
.XValues = "='Sheet1'!$A$2:$A$10" 'Xの値
.Values = "='Sheet1'!$D$2:$D$10" 'Yの値
End With
End With

XValuesとValuesは下記のようにしても良いと思います。

.XValues = Sheets("Sheet1").Range("A2:A10") 'Xの値
.Values = Sheets("Sheet1").Range("D2:D10") 'Yの値
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
なるほど、こういう書き方もあるのですね。
しかし、実行してみるとWith .SeriesCollection(1)でエラーが発生してしまいます。

お礼日時:2010/06/27 23:37

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