Excel это не сложно

Основные форумы => Вопросы по Excel и VBA => Тема начата: A-Michael от 24.03.2019, 13:41:45



Название: Управление градиентом графика
Отправлено: A-Michael от 24.03.2019, 13:41:45
Уважаемые форумчане!
Каюсь, грешен, давно не был на форуме. Вопросы не возникали к знатокам, что-то сам додумаю, что-то подсмотрю в Тырнете...
Но вот столкнулся с проблемой, которую не могу разрешить: управление цветовым градиентом на графике через VBA. График рисуется отменно, градиент вручную - без проблем. Попытался записать макрос, но дальше выбора линии ничего не пишет. Ну, то есть, выбираю "Формат ряда данных" и уже ничего в макросе на эту тему не вижу.
Может кто сталкивался с этой проблемой? Меня в частности интересует как программно изменять проценты положения точки (на фрагменте во вложении выделен красной рамкой) и возможно ли это вообще?
Заранее спасибо всем откликнувшимся.
PS. Вопрос не то чтобы принципиальный, но было бы неплохо решить его...


Название: Re:Управление градиентом графика
Отправлено: Дмитрий Щербаков(The_Prist) от 24.03.2019, 15:34:31
Что-то вроде:
Код: (vb)
    With ActiveSheet.ChartObjects("ChartName").FullSeriesCollection(1).Format.Fill
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorAccent1
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = 0.9
        .BackColor.ObjectThemeColor = msoThemeColorAccent1
        .BackColor.TintAndShade = 0
        .BackColor.Brightness = 0.7
        .TwoColorGradient msoGradientHorizontal, 1
    End With


Название: Re:Управление градиентом графика
Отправлено: A-Michael от 24.03.2019, 18:25:15
Что-то подобное мне встречалось, но есть "маленькое" отличие: приведённый пример для 2-х цветного градиента, а у меня, эта зараза 3-х цветная... И вот 2-й цвет нужно сдвигать то в одну, то в другую сторону, а 1-й и 3-й как раз таки фиксированные.
".TwoColorGradient" - стандартное решение для двухцветного градиента, есть ещё ".OneColorGradient" для одноцветного, но для 3-х и более цветов ничего не нашёл.


Название: Re:Управление градиентом графика
Отправлено: A-Michael от 25.03.2019, 08:11:51
Так, упростим задачу, уберём 3-й цвет, оставим только два, но суть остаётся неизменной, нужно изменить положение точки градиента (?). См. вложения. Так как имеются известные ограничения на объём вложения придётся прикреплять в отдельных сообщениях.
Заранее спасибо всем откликнувшимся.


Название: Re:Управление градиентом графика
Отправлено: A-Michael от 25.03.2019, 08:12:34
Вложение 2


Название: Re:Управление градиентом графика
Отправлено: A-Michael от 25.03.2019, 08:12:57
Вложение 3


Название: Re:Управление градиентом графика
Отправлено: Дмитрий Щербаков(The_Prist) от 25.03.2019, 08:39:02
А Вы реально думаете, что сейчас все кинутся изобретать данные под Вашу диаграмму, чтобы предложить решение? Вроде не первый день на форуме и давно пора бы понять, что ничто так не ускоряет получение помощи, как пример в файле Excel.


Название: Re:Управление градиентом графика
Отправлено: A-Michael от 25.03.2019, 14:22:49
Да суть-то не в данных, а в том, как задать положение точки перехода цвета в градиенте. Ведь наверняка кто-то сталкивался с подобной задачей...
Файл слишком велик, поэтому выложу только диаграмму с данными.
Вот, на листе Тнв 3 графика.
На первом Точка 1 - 0%, Точка 2 - 100% (исходное состояние при построении графика).
На втором Точка 1 - 50%, Точка 2 - 100% (ПОКРАСНЕНИЕ).
На первом Точка 1 - 0%, Точка 2 - 50% (ПОСИНЕНИЕ).
Визуально видно (надеюсь) как изменяется градиент в сторону "ПОКРАСНЕНИЯ" или "ПОСИНЕНИЯ" в зависимости от положения точки. Я хотел бы добиться такого сдвига средствами VBA, если это, конечно, возможно.


Название: Re:Управление градиентом графика
Отправлено: A-Michael от 07.04.2019, 07:52:16
Жаль, что нет такой возможности, а задумка была интересная...