Отключите маркерную тень на графиках Excel, сгенерированных vba

Я переношу некоторый код, который использую для создания точечных диаграмм в Excel, из Win 7/Excel 2010 в OS X/Excel 2011. На Mac , точки данных отображаются с тенью. Мне не нужна тень, и я не могу понять, как от нее избавиться.

Используя этот рабочий лист(он просто содержит случайные числа в ячейках A1:B6, если вы не хотите загружать мой рабочий лист с поддержкой макросов), следующий код работает нормально, но создает точки данных с тенями:

Sub plotNoShadow()

  Dim x As Range
  Dim y As Range

  Dim cht As ChartObject

  Set x = ActiveSheet.Range("A1:A6") 'haphazard numbers
  Set y = ActiveSheet.Range("B1:B6")

  Set cht = ActiveSheet.ChartObjects.Add(Left:=150, Top:=50, Width:=200, Height:=160)
  With cht.Chart
    .ChartType = xlXYScatter
    .SeriesCollection.NewSeries
    With .SeriesCollection(1)
        .XValues = x
        .Values = y
        .Format.Shadow.Visible = msoFalse 'This seems to parse, but have no effect
    End With
    .SetElement (msoElementLegendNone)
    .SetElement (msoElementPrimaryValueGridLinesNone)
  End With      
End Sub

Может ли кто-нибудь объяснить мне:

  1. Как изменить этот код, чтобы удалить тени, и

  2. Как этот код работает, но установка SeriesCollection(1).Format.Shadow.Visible для msoFalse управляет запустить без видимого эффекта?

Согласно ветке комментариев ниже, вот скриншот вывода макроса слева, точки с включенной и выключенной тенью в середине и включенные тени справа. Я отредактировал макрос, удалив легенду и линии сетки для ясности. Похоже, что вывод макроса имеет меньше теней, чем в состоянии «тень включена», но больше теней, чем в состоянии «тень выключена».

Screencap to illustrate the three states of shadow existence

7
задан Community 9 July 2018 в 19:34
поделиться