「パワーポイント マクロ グラフ Chart.Legend」
といった検索キーワードでアクセスがありました。
誰かが作成したPowerPointマクロにコード「Chart.Legend」があったので、その意味を調べていらしたのでしょうか。
結論をお伝えすると「Chart.Legend」は、グラフを表すChartオブジェクトに用意されているLegendプロパティです。
Chart.Legendプロパティの戻り値は、グラフの凡例を表すLegendオブジェクトです。
Chart.Legendを使うサンプル
実際のコードを確認しましょう。
1枚目のスライドの2つ目のShapeがグラフで凡例が表示されているプレゼンテーションファイルがアクティブな状態で、以下のSubプロシージャを実行してください。
Dim lgd As Legend
Set lgd = ActivePresentation.Slides(1).Shapes(2).Chart.Legend
lgd.Format.Fill.ForeColor.RGB = RGB(204, 204, 204)
lgd.Format.Line.Weight = 4
End Sub
凡例の塗りつぶし色がグレーに、枠線が太くなります。
かなり深い階層ですが、PowerPoint VBAのShapeオブジェクトに慣れていれば、恐れる必要はありません。
lgd.Format.Fill.ForeColor.RGB = RGB(204, 204, 204) lgd.Format.Line.Weight = 4
で使用している「.Format」はLegendオブジェクトに用意されているFormatプロパティで、ChartFormatオブジェクトを返します。
ChartFormatオブジェクトは、PowerPoint VBAに慣れた方なら使い慣れているはずのShapeオブジェクトの機能限定版と考えてください。
「.Format」につづく「.Fill.ForeColor.RGB」や「.Line.Weight」は、PowerPoint VBAでShapeの見た目(書式)を操作する際に、よく見かけるコードです。
Chart.Legendで実行時エラーが発生する場合
上記のSubプロシージャは、1枚目のスライドの2つ目のShape内のグラフに凡例が表示されていないときには実行時エラーが発生します。
その場合は、ChartオブジェクトのHasLegendプロパティを使って、事前に凡例を表示しましょう。
先のSubプロシージャの、
Set lgd = ActivePresentation.Slides(1).Shapes(2).Chart.Legend
の前に、
ActivePresentation.Slides(1).Shapes(2).Chart.HasLegend = True
といったコードを入れてください。
- Newer:VBAでグラフの第2軸を追加する
- Older:SeriesCollection(1).Valuesとは
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » グラフ・Chart » PowerPoint VBAのChart.Legendとは