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