「シート内のグラフ vba for each」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
いずれかのワークシート上に存在している全グラフに対して、For Each~Nextループを使って何らかの処理を行うにはどのようなコードを書けばいいのか探している方による検索です。
ワークシート上のグラフをFor Each~Nextループで処理するサンプルマクロ
「シート内のグラフ vba for each」
という検索キーワードだけでは、For Each~Nextループの中で具体的に何をしたかったのかまではわかりませんので、参考になりそうな簡単なマクロをご紹介しておきます。
Dim cho As ChartObject
For Each cho In ActiveSheet.ChartObjects
cho.Select
MsgBox cho.Name
Next
End Sub
上記のマクロを実行すると、アクティブなシート上に存在するグラフが順番に選択されて、グラフ名がメッセージボックスに表示されます。
サンプルマクロの解説
ワークシート上のグラフは、Excel VBA的にはChartObjectオブジェクトです。
オブジェクトブラウザーでChartObjectオブジェクトを確認すると下図のようなプロパティ・メソッドを持つことがわかります。
上記のマクロではFor Each~Nextループの中で、SelectメソッドとNameプロパティを利用しています。
このChartObjectオブジェクトを単一オブジェクトとして持つのは、ChartObjectsコレクションオブジェクトです。
ワークシート上のChartObjectsコレクションオブジェクトは、WorksheetオブジェクトのChartObjectsメソッドで取得できるので、
上記のようなFor Each~Nextループにしました。
最終更新日時:2022-06-22 17:01
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » ワークシート上の全グラフをFor Each~Nextループで