Я пытаюсь написать подпрограмму Excel 2010 VBA для форматирования диаграмм в соответствии с заранее определенным (то есть определенным мной) стандартом. Конкретные атрибуты, которые я хочу установить, - это просто атрибуты, которые становятся доступными через окно «Форматировать ряд данных», которое открывается при двойном щелчке по ряду данных.
Стремясь найти имена различных свойств, которые мне нужно было установить, я записал в виде макроса изменения, которые я вносил в стиль ряда данных. Однако, хотя я могу установить разные цвета линии и цвета линии маркера в окне «Форматировать ряд данных», записанный макрос (аннотированный ниже) ссылается на объекты с одинаковыми именами (неразличимые) для цвета линии и цвета линии маркера.
Кроме того, когда я запускаю макрос, есть две проблемы. Во-первых, несмотря на то, что записанный макрос ссылается на свойство marker-fill .ForeColor.Brightness
, эта строка выдает ошибку при выполнении макроса. В сообщении об ошибке «Метод Яркость объекта ColorFormat не удалось». Во-вторых, записанный код фактически одновременно устанавливает цвет линии маркера и основную линию для серии, поэтому в записанном коде они оба сначала устанавливаются на то, что, как я надеялся, будет цветом линии маркера, а затем оба на то, что я хотел основной цвет линии.
Как настроить заливку маркера, цвет линии маркера и цвет линии.
Sub Macro1()
'
' Macro6 Macro
' On Sheet 1 there is a single embedded chrt
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SeriesCollection(1).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorText1
.ForeColor.TintAndShade = 0
' The following (recorded line produces an error)
.ForeColor.Brightness = 0.5
.Transparency = 0
.Solid
End With
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent5
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0.400000006
.Transparency = 0
End With
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent6
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = -0.5
.Transparency = 0
End With
End Sub