spark108
@spark108

Как автоматически разнести выноски на диаграмме Excel при помощи VBA или C#?

Есть точечная диаграмма в Excel и кучей точек на ней, к каждой точке необходима выноска с её названием и дело в том, что эти самые выноски при смене данных в точке постоянно находятся в разноброс. Ручшное перемещение каждой выноски занимает доброе количество времени.

В VBA есть свойства, которое якобы должно делать автоматический разнос выносок (хотя бы без пересечений их линий), но похоже это работает только для круговых диаграмм.

Есть ли у выносок координаты, что бы можно было их программным путем разнести по полотну или есть ли другой способ добиться этого?

На рисунке уже образец после ручного переноса всех выносок, но до этого была каша.
65b1a6b758351328417636.png
А вот это уже каша, но могло быть и хуже.
65b1a7194d397245706085.png
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
@artnib
Можно задать свои координаты для выносок (объекты DataLabel):
Dim wsh As Worksheet, dl As DataLabel, series As series
  Set wsh = ThisWorkbook.Worksheets(1)
  Set series = wsh.ChartObjects(1).Chart.SeriesCollection(1)
  For Each dl In series.DataLabels
    'TODO: задать координаты по своему алгоритму
    dl.Left = 50
    dl.Top = 50
    Exit For
  Next dl
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы