Изменение прозрачности линий серии без влияния на прозрачность маркеров в Excel VBA - PullRequest
3 голосов
/ 02 марта 2012

Я пишу макрос в VBA для Excel, в котором я хотел бы изменить прозрачность линий, соединяющих маркеры в серии, но оставить прозрачность маркеров в серии одинаковой.

Чтобы указать: диаграмма является точечной диаграммой.Мне бы хотелось, чтобы маркеры для ряда были непрозрачными / с нулевой прозрачностью, а для линий в серии были прозрачными на 75%.

Я установил прозрачность линий с помощью myseries.format.line.transparency = 0.75, но это изменяетпрозрачность маркера.

Кто-нибудь знает, как я могу изменить прозрачность двух отдельно?Я предполагаю, что есть член / свойство, которое делает то, что я хочу, но я не могу его найти.

заранее благодарю за любую помощь!

Ответы [ 3 ]

4 голосов
/ 02 марта 2012

Этот ответ не сделает вас очень счастливыми.

Я рассматривал это раньше, и информация, которую я получил, заключается в том, что это просто не тот параметр, который вы можете указать через VBA. Похоже, вы можете получить доступ к стилю маркера, размеру, цвету фона и цвету переднего плана, и это все.

Может быть, М.С. не думала, что кто-нибудь захочет с этим возиться.

Одна вещь, которую вы можете попробовать, это применить пользовательский формат диаграммы, но если у вас есть переменные числа и / или порядки рядов, это может не сработать.

 mychart.ApplyChartTemplate ("filepath\filename.crtx")

Что-то в этом роде, когда mychart уже установлен равным графику, который вы хотите отформатировать.

Опять же, может быть, вам это не поможет, лучше всего я мог бы подумать.

1 голос
/ 14 сентября 2012

Вы, ребята, недостаточно усердно копали.

SeriesCollection(i).Format.Line.Transparency

будет работать , если SeriesObject находится в определенном состоянии.Исходное «автоматическое» состояние стиля линии не позволяет этой vba сначала делать что-либо, но если вы просто предшествуете этому, сначала устанавливая некоторые другие свойства в формате строки, тогда будет действовать прозрачность.Для меня сработало следующее:

For Each obj In myChart.SeriesCollection
    obj.Format.Line.DashStyle = 1
    obj.Format.Line.Transparency = 0.65
Next obj

DashStyle = 1 устанавливает стиль линии на «Сплошной» (в отличие от пунктирной, пунктирной и т. Д.) И имеет побочный эффект освобождения формата серии, чтобы иметьпрозрачность установлена.Я не знаю точно, почему это работает, но это работает.

0 голосов
/ 08 января 2015

Извините, моя ошибка.Я немного неправильно прочитал вопрос.

Я считаю, что если я начинаю линию без маркеров, то если включить прозрачность отдельно, маркеры не будут включаться и выключаться.

...