Страницы: 1
RSS
Изменение параметров осей в диаграмме средствами vba, Не выполняется команда vba по изменению параметров (цвета) осей встроенной диаграммы
 
Добрый день. Ситуация непонятная. На странице с данными (Excel 2007) имеется встроенная диаграмма тип:
.ChartType = xlXYScatterSmoothNoMarkers
Средствами vba указаны данные, все отображается норм.
Не выполняются (не приводит к изменению параметров) команды vba по изменению параметров осей диаграммы:
ActiveSheet.ChartObjects(1).Chart.Axes(xlPrimary).Format.Line.ForeColor.RGB = RGB(0, 0, 0)
Так же не удаётся сменить соответствующий параметр в окне "Watches" в режиме отладки.

Однако, если вручную установить в диалоговом окне "Формат оси" в параметрах "Цвет линии" в элементе "Цвет" какой ни-будь другой цвет (по умолчанию сероватый),
при этом Ексель выдаёт предупреждающий вопрос: "Для отображения сложного форматирования, примененного к выбранной диаграмме, может потребоваться значительное время. Продолжить использование этого форматирования?" После подтверждения, цвет оси меняется и в дальнейшем изменение цвета макрокомандами выполняется без проблем.
При этом вес (толщина) осей без проблем меняется с самого начала аналогичной командой:
ActiveSheet.ChartObjects(1).Chart.Axes(xlPrimary).Format.Line.Weight = 2
Может кто подсказать, возможно ли и как это вылечить?
Изменено: Игорь - 22.06.2022 13:43:55
 
а файл есть у вас?
можете на примере файла простыми словами (без VBA) обьяснить что хотите сделать?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Без vba будет сложно. Проблема возникает именно при действиях в макросе.
Если действовать средствами пользовательского интерфейса, то, за исключением упомянутого "лишнего" вопроса/предупреждения GUI, проблем не возникает - цвета осей меняются в диалоговом окне их свойств. Собственно. после разового такого (ручного) изменения, становится доступным (реагирует на команды) и средствами vba
 
понятно. как хотите
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Да все работает
Код
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
    ActiveChart.SetSourceData Source:=Range("Лист1!$C$3:$E$20")
    With ActiveChart.Axes(xlValue).Format.Line
        .ForeColor.RGB = RGB(0, 32, 96)
        .Weight = 2.25
     End With
    With ActiveChart.Axes(xlPrimary).Format.Line
        .ForeColor.RGB = RGB(255, 255, 96)
        .Weight = 2.25
    End With
Страницы: 1
Наверх