機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > VBA > Excel 2007以降のグラフ

円グラフにデータラベルを設定する



円グラフにデータラベルを表示するのは、棒グラフにデータラベルを表示するのと同じ考え方です。


ただし、円グラフに系列は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のコードは動くか


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で問題なく動作します。



このエントリーをはてなブックマークに追加