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軸の値にしてグラフを作成するには上記のマクロをどのように変更すればよいのでしょうか?
No.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行を前後に入れ替えただけです。
新しいマクロの記録で記録マクロを録って参考にしてみてください。
No.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の値
回答ありがとうございます。
なるほど、こういう書き方もあるのですね。
しかし、実行してみるとWith .SeriesCollection(1)でエラーが発生してしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Visual Basic(VBA) 【再投稿】VBAのシフト表でバグが出て困っています 3 2022/09/24 08:29
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) VBA*セルに値があればシート名に反映 2 2023/02/21 14:52
- Excel(エクセル) Excelのマクロで、特定のセルから順番に値を取得したい 5 2022/12/06 15:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
マイクロソフト 一時使用コード...
-
会社PCのメールが更新されない
-
英数字のみ全角から半角に変換
-
【Microsoft Forms】回答を削除...
-
VLOOKUP関数について
-
Microsoft Formsの「個人情報や...
-
【スプレッドシート】指定の日...
-
outlookのメールが固まってしま...
-
vb.net オブジェクト指向につい...
-
Outlook で宛先が複数の場合の人数
-
【スプレッドシート】白色のセ...
-
1つのPCに「Excel 2010」「Exc...
-
エクセルでXLOOKUP関数...
-
Microsoft Formsで「応答」から...
-
Office 2021 Professional Plus...
-
エクセルのシフト表を簡単にGoo...
-
Microsoft Edgeの「ニュースと...
-
Microsoft Officeに似たキング...
-
Excel VBA 日程表からスケジュ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
マイクロソフト 一時使用コード...
-
英数字のみ全角から半角に変換
-
Office2021を別のPCにインスト...
-
Microsoft Formsの「個人情報や...
-
officeビジネス型のワードやエ...
-
会社PCのメールが更新されない
-
【スプレッドシート】指定の日...
-
Microsoft Officeを2台目のPCに...
-
何このステータスバー
-
2つのシートの一致する行のセ...
-
会社のTeamsのことで相談です。...
-
エクセルにリンクされるのをし...
-
Windows 11で、IME言語バー(IM...
-
office2010とoffice365の共存で...
-
Microsoftのパソコンです。 エ...
-
エクセルでXLOOKUP関数...
-
Excel関数について質問ですm(__)m
-
VBA
-
自分の専門分野の仕事。初見で...
おすすめ情報