ChartAreaを基準にしてDataLabelを配置するDataLabels.Leftプロパティを使用する回避策があります。
VBソリューションの例を次に示します。
sub FakeLabels()
Dim sF As Double
Dim lOff As Double
Dim p As Double
ActiveSheet.ChartObjects(1).Activate
With ActiveChart
For sF = 1 To .SeriesCollection.Count
If .SeriesCollection(sF).Name = "FakeSeries" Then
'Define the lOff variable by adding 100, or some other value
lOff = .SeriesCollection(sF).Points(1).DataLabel.Left + 100
For p = 1 To .SeriesCollection(sF).Points.Count
.SeriesCollection(sF).Points(p).DataLabel.Left = lOff
Next p
End If
Next sF
End With
同じ結果が得られます。唯一の新しい要件は、「ダミー」シリーズの値をチャートの軸の最小/最大値内に維持することです。
嬉しい驚きは、グラフのサイズを変更しても、ラベルの相対的な配置に影響がないように見えることです。
2013年9月25日更新
この質問を最初に行って以来、私は「テキストボックス」アプローチを使用してきました。ただし、ラベルの位置とテキストボックスの位置の間の相互作用、PlotArea
つまり、vs。またはvs.をいつ使用する.InsideWidth
か.Width
、.InsideLeft
ポイント.Left
に何らかの快楽的な「調整」が必要かどうかの相対的な位置を管理するのは非常に不格好です。常にそうであるように、値は完全に一致することはありません。
他のチャート関連の問い合わせのためにPPTオブジェクトモデルリファレンスを熟読しているときに、以前の修正プログラム/レジストリハックの機能を複製しているように見えるこのプロパティに出くわしました。
.ShowDataLabelsOverMaximum