Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

Управление градиентом графика

Автор A-Michael, 24.03.2019, 13:41:45

« назад - далее »

A-Michael

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

Дмитрий Щербаков(The_Prist)

Что-то вроде:
    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
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

A-Michael

#2
Что-то подобное мне встречалось, но есть "маленькое" отличие: приведённый пример для 2-х цветного градиента, а у меня, эта зараза 3-х цветная... И вот 2-й цвет нужно сдвигать то в одну, то в другую сторону, а 1-й и 3-й как раз таки фиксированные.
".TwoColorGradient" - стандартное решение для двухцветного градиента, есть ещё ".OneColorGradient" для одноцветного, но для 3-х и более цветов ничего не нашёл.
Я - не волшебник, я ещё только учусь...

A-Michael

Так, упростим задачу, уберём 3-й цвет, оставим только два, но суть остаётся неизменной, нужно изменить положение точки градиента (?). См. вложения. Так как имеются известные ограничения на объём вложения придётся прикреплять в отдельных сообщениях.
Заранее спасибо всем откликнувшимся.
Я - не волшебник, я ещё только учусь...

A-Michael

Я - не волшебник, я ещё только учусь...

A-Michael

Я - не волшебник, я ещё только учусь...

Дмитрий Щербаков(The_Prist)

А Вы реально думаете, что сейчас все кинутся изобретать данные под Вашу диаграмму, чтобы предложить решение? Вроде не первый день на форуме и давно пора бы понять, что ничто так не ускоряет получение помощи, как пример в файле Excel.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

A-Michael

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

A-Michael

Жаль, что нет такой возможности, а задумка была интересная...
Я - не волшебник, я ещё только учусь...

Яндекс.Метрика Рейтинг@Mail.ru