Doc -
Yes, this is certainly frustrating. And it means more work.
Using VBA you can measure the position of each data label (its .Top and .Left). It's
a little trickier, but you can also determine the position of the center of each
data label (not just algebra, because Excel won't tell you how tall or wide it is).
If interested, post back and I'll describe how to do this.
Then you can do a few nested loops (pseudocode):
For each ws in activeworkbook.worksheets
For each chtob in ws.chartobjects
for each srs in chtob.chart
For each dl in srs.datalabels
' code to get centers of dl
' dlHcenter, dlVcenter
set txt = activechart.Shapes _
.AddTextbox(msoTextOrientationHorizontal, _
100, 100, 200, 50)
' dummy temp dimensions (points)
with txt
.AutoSize = True
.TextFrame.Characters.Text = _
dl.text
.left = dlhcenter - .width/2
.top = dlvcenter - .height/2
end with
next ' dl
.datalabels.delete
next srs
next chtob
next ws
So it's a pain, but not insurmountable. Easier than searching for another program
and learning how to make it do more than it's user interface can handle without
special programming.
- Jon
-------
Jon Peltier, Microsoft Excel MVP
Peltier Technical Services
Tutorials and Custom Solutions
http://PeltierTech.com/
_______