Excel 2007で、グラフの凡例を設定するには、次のようにします。
Sub Sample() With ActiveSheet.ChartObjects(1).Chart If .HasLegend = False Then .HasLegend = True ''凡例を表示する .Legend.Position = xlLegendPositionTop ''凡例を上に表示する .Legend.IncludeInLayout = False ''凡例をグラフに重ねる With .Legend.Format.Fill .Visible = msoTrue ''凡例を塗りつぶします .ForeColor.RGB = RGB(255, 0, 0) ''赤色 .ForeColor.TintAndShade = 0.5 ''明暗の設定 End With End With End Sub
凡例を設定するには、そもそも凡例が表示されていなければなりません。そこで「Chart.HasLegend = True」をします。
凡例の位置は「Chart.Legend.Position」プロパティに、次の定数を指定します。
定数 | 値 | 意味 |
---|---|---|
xlLegendPositionBottom | -4107 | グラフの下 |
xlLegendPositionCorner | 2 | グラフの輪郭線の右上隅 |
xlLegendPositionCustom | -4161 | 任意の位置 |
xlLegendPositionLeft | -4131 | グラフの左 |
xlLegendPositionRight | -4152 | グラフの右 |
xlLegendPositionTop | -4160 | グラフの上 |
IncludeInLayoutプロパティは、Excel 2007で追加されたプロパティです。凡例をグラフに重ね合わせるかどうかを指定します。Trueを指定すると、凡例はグラフの上に表示され、Falseを指定すると、凡例はグラフに重ね合わせて表示されます。
凡例を塗りつぶすには、まず「Legend.Format.Fill.Visible」プロパティにTrueを指定します。あとは、ForColorに色を設定します。色に関しては、目次ページの「色について」で解説していますのでご覧ください。
Excel 2003で
という操作をマクロ記録してみましょう。
Sub Macro() ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.Legend.Select With Selection.Border .Weight = xlHairline .LineStyle = xlAutomatic End With Selection.Shadow = False With Selection.Interior .ColorIndex = 38 .PatternColorIndex = 1 .Pattern = xlSolid End With Selection.Position = xlTop End Sub
このコードを、Excel 2007で実行してみます。
【Excel 2007での実行結果】
問題ないようですね。