Option Explicit
Sub test()
Dim cht As Chart
Dim rData As Range
Dim rLbl As Range
Dim ser As Series
Dim k As Long
Dim dl As DataLabels
With ActiveSheet
Set cht = .ChartObjects(1).Chart
Set rData = .Cells(1).CurrentRegion
End With
cht.ChartType = xlColumnStacked
cht.SetSourceData rData, xlColumns
cht.ApplyDataLabels
Set rLbl = Intersect(rData, rData.Offset(1, 1)).Offset(7)
For k = 1 To cht.SeriesCollection.Count
Set dl = cht.SeriesCollection(k).DataLabels
dl.Format.TextFrame2.TextRange.InsertChartField _
msoChartFieldRange, rLbl.Columns(k).Address(, , , True)
dl.ShowRange = True
dl.ShowValue = False
Next
End Sub
マナ