みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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軸の値にしてグラフを作成するには上記のマクロをどのように変更すればよいのでしょうか?

投稿日時 - 2010-06-27 15:48:28

QNo.5999059

困ってます

質問者が選んだベストアンサー

変更前:
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行を前後に入れ替えただけです。
新しいマクロの記録で記録マクロを録って参考にしてみてください。

投稿日時 - 2010-06-27 21:35:45

お礼

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

投稿日時 - 2010-06-27 23:22:54

ANo.2

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

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の値

投稿日時 - 2010-06-27 16:41:35

お礼

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

投稿日時 - 2010-06-27 23:37:41

あなたにオススメの質問