円グラフにデータラベルを表示するのは、棒グラフにデータラベルを表示するのと同じ考え方です。
ただし、円グラフに系列は1つしかありませんから、For Nextなどで繰り返し処理をする必要はありません。
Sub Sample() Dim i As Long With ActiveSheet.ChartObjects(1).Chart .SeriesCollection(1).HasDataLabels = True End With End Sub
表示するデータラベルの種類を指定するには、次のプロパティにTrueまたはFalseを指定します。
プロパティ名 | 意味 |
---|---|
ShowSeriesName | Trueを設定すると 系列名 を表示します |
ShowCategoryName | Trueを設定すると 分類名 を表示します |
ShowValue | Trueを設定すると 値 を表示します |
ShowPercentage | Trueを設定すると パーセンテージ を表示します |
HasLeaderLines | Trueを設定すると 引き出し線 を表示します |
円グラフでは、データラベルの位置に、次の4種類を指定できます。
定数 | 値 | 意味 |
---|---|---|
xlLabelPositionCenter | -4108 | 中央 |
xlLabelPositionInsideEnd | 3 | 内部外側 |
xlLabelPositionOutsideEnd | 2 | 外部 |
xlLabelPositionBestFit | 5 | 自動調整 |
Excel 2003で、データラベルを表示する操作をマクロ記録すると、次のコードが記録されます。
Sub Macro() ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.SeriesCollection(1).Select ActiveChart.SeriesCollection(1).ApplyDataLabels AutoText:=True, LegendKey:= _ False, HasLeaderLines:=False, ShowSeriesName:=False, ShowCategoryName:= _ False, ShowValue:=True, ShowPercentage:=False, ShowBubbleSize:=False End Sub
このコードは、Excel 2007でも問題なく動作します。
とはいえ、まさか、マクロ記録したコードをそのまま使うような人はいないでしょうから、Excel 2003までは、次のようなコードでデータラベルを表示していたと思います。
Sub Macro() With ActiveSheet.ChartObjects(1).Chart .ApplyDataLabels ShowValue:=True End With End Sub
もちろん、このコードも、Excel 2007で問題なく動作します。