
マクロがどのように記録されるかを見ながら、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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
microsoft office for mac につ...
-
大学のレポート A4で1枚レポー...
-
office2019 のoutlookは2025年1...
-
Microsoft Officeを2台目のPCに...
-
エクセルの式がわかる方がおら...
-
Office2021を別のPCにインスト...
-
Microsoft Formsの「個人情報や...
-
outlookのメールが固まってしま...
-
Microsoft Office
-
Officeを開くたびの「再起動メ...
-
web上にあるエクセルをショート...
-
Excelで〇のついたものを抽出し...
-
ステータスバーの合計に表示さ...
-
エクセル 日付順に並べてかえた...
-
Microsoft365、ページ設定がで...
-
officeソフトについて教えてく...
-
Office 2021 Professional Plus...
-
Excel テーブル内の空白行の削除
-
Microsoft 365 の支払いが反映...
-
Office2024インストール後の疑問点
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
大学のレポート A4で1枚レポー...
-
エクセルの式がわかる方がおら...
-
Office2024インストール後の疑問点
-
Microsoft Formsの「個人情報や...
-
Excelで〇のついたものを抽出し...
-
マイクロソフト オフィスのサポ...
-
office2019 のoutlookは2025年1...
-
outlookのメールが固まってしま...
-
Office2021を別のPCにインスト...
-
エクセル 日付順に並べてかえた...
-
Office 2021 Professional Plus...
-
エクセルで質問です。 ハイパー...
-
Excel 日付を比較したら、同じ...
-
マクロ自動コピペ 貼り付ける場...
-
エクセル:一定間隔で平均値を...
-
Teams内でショートカットって貼...
-
Microsoft365、ページ設定がで...
-
Microsoft365について
-
別シートの年間行事表をカレン...
おすすめ情報