![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
マクロがどのように記録されるかを見ながら、VBAのスクリプトの書き方を学んでいる初心者です。
Sub Macro1()
'
' Macro1 Macro
,
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLine
ActiveWindow.ScrollColumn = 1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "='平均化'!$B$1"
ActiveChart.SeriesCollection(1).Values = "='平均化'!$B$4:$B$18"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "='平均化'!$C$1"
ActiveChart.SeriesCollection(2).Values = "='平均化'!$C$4:$C$18"
ActiveChart.ChartType = xlLine
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLine
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "='平均化'!$D$1"
ActiveChart.SeriesCollection(1).Values = "='平均化'!$D$4:$D$18"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "='平均化'!$E$1"
ActiveChart.SeriesCollection(2).Values = "='平均化'!$E$4:$E$18"
ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).Name = "='平均化'!$F$1"
ActiveChart.SeriesCollection(3).Values = "='平均化'!$F$4:$F$18"
End Sub
以上のマクロを作成し、実行したのですが、”指定した名前のアイテムが見つかりませんでした”と出て、上手く実行されませんでした。
操作対象のオブジェクトを行き来する方法を知りたいのですが、オブジェクトを作成するたびに
ActiveSheet.ChartObjects("グラフ 1").Activate
のダブルクオーテーション内に当たる値が自動的に割り振られるため、この部分でエラーになることは分かりました。
つまりこの値をこちらから指定出来れば、望んだ動作をさせられるのではと考えているのですが、
どなたかご教示お願いできませんでしょうか。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>オブジェクトを作成するたびに
≪例1≫
SelectしないでWith文で括ってやります。
With ActiveSheet.Shapes.AddChart.Chart
.ChartType = xlLine
With .SeriesCollection.NewSeries
.Name = "='平均化'!$B$1"
.Values = "='平均化'!$B$4:$B$18"
.XValues = "='平均化'!$A$4:$A$18"
End With
End With
≪例2≫
グラフオブジェクトを数えた値をインデックスに使います。
最後に作成したグラフが指定できます。
With ActiveSheet.ChartObjects(.ChartObjects.Count).Chart
With .SeriesCollection.NewSeries
.Name = "='平均化'!$F$1"
.Values = "='平均化'!$F$4:$F$18"
.XValues = "='平均化'!$A$4:$A$18"
End With
End With
≪例3≫
オブジェクト変数を使います。
Dim cht As Shape
Set cht = ActiveSheet.Shapes.AddChart
With cht.Chart.SeriesCollection.NewSeries
.Name = "='平均化'!$F$1"
.Values = "='平均化'!$F$4:$F$18"
.XValues = "='平均化'!$A$4:$A$18"
End With
ChartObjects.Addでもグラフが作成できます。
私はこちらの方を好みます。
Worksheets("sheet1").ChartObjects.Add
≪参考≫
グラフ操作関連のテクニック
http://moug.net/tech/exvba/0021.htm
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 統計学 不偏分散について 3 2022/03/29 15:57
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- 統計学 母平均の検定(両側t検定)の問題 2 2023/03/14 20:02
- 不動産投資・投資信託 投資信託に詳しい方、お願いします 3 2022/06/11 13:29
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- 物理学 高校生 物理 2 2023/07/26 06:07
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- 物理学 高校生 物理 1 2023/07/26 06:37
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
会社のOutlookにてメールを予約...
-
マクロ自動コピペ 貼り付ける場...
-
「生産性ソフトウェア」とは何...
-
エクセルでXLOOKUP関数...
-
会社PCのメールが更新されない
-
Microsoft familyに追加されま...
-
大学のレポート A4で1枚レポー...
-
無料のオフィス互換ソフトの使...
-
Microsoft 365 の一般法人向け...
-
outlookのメールが固まってしま...
-
マイクロソフトオフィス
-
Outlook で宛先が複数の場合の人数
-
Outlook 電源OFFの受診の仕方
-
EXCELのセルへの色づけ
-
Microsoft365の一部を解約したい
-
vb.net オブジェクト指向につい...
-
Office 2021 Professional Plus...
-
マイクロソフト オフィスについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
Excelで空白以外の値がある列の...
-
会社PCのメールが更新されない
-
Excel 日付を比較したら、同じ...
-
マイクロソフト 一時使用コード...
-
ウィンドウィズ メモ帳で日付だ...
-
MicrosoftOfficeの1ユーザー2...
-
Microsoft Formsの「個人情報や...
-
Officeの字体
-
エクセルでXLOOKUP関数...
-
Microsoft365で自動保存が出来...
-
Outlookで、任意のメールアドレ...
-
outlookのメールが固まってしま...
-
Microsoft 365 の一般法人向け...
-
Office2021を別のPCにインスト...
-
Microsoft 365のディフェンダー...
-
Excelに貼ったリンクについて E...
-
MicrosoftOffice2019なんですが、
-
Outlook で宛先が複数の場合の人数
おすすめ情報