如前所述,Excel 中的几种默认图表样式会产生轻微的 3D 效果,同时也会产生轻微的阴影。
在我的 Excel(Windows 7 中)上,默认图表样式为 2,因此不会出现阴影或 3D 效果。我怀疑在 Mac 上,默认的图表样式是不同的。
要解决此问题,您可以在代码中设置图表样式:
With cht.Chart
.ChartType = xlXYScatter
.ChartStyle = 2
.....
在 Excel 中,ChartStyle 设置能够修改图表外观的各个方面,包括标记的外观。 MarkStyle 设置的唯一内容是标记的形状。当 ChartStyle 更改时,标记的所有其他外观方面都会被覆盖。
EDIT
上面的评论基本上还是正确的,但是我已经找到了关闭阴影的方法。与 Excel 中的许多事情一样,它并不像您想象的那么容易。如果在代码中完成设置阴影的可见性属性(无论出于何种原因),则不会产生任何效果,因此您需要将阴影类型设置为“无阴影”。
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
.ChartStyle = 26 'Something 3D with a default shadow. This line can be left out.
.SeriesCollection.NewSeries
With .SeriesCollection(1)
.XValues = x
.Values = y
.Format.Shadow.Type = msoShadow30 'This is the code for an inner shadow
End With
.SetElement (msoElementLegendNone)
.SetElement (msoElementPrimaryValueGridLinesNone)
End With
End Sub
再次编辑
实际上,msoShadow30
是一种“内部阴影”样式,根据您的标记样式,可能看起来很奇怪。msoShadow41
这是我能找到的最接近“No Shadow”的东西。它实际上是下面的阴影代码,但是默认情况下,它太微弱了,看不到。如果它确实出现,可以随时更改颜色以使其消失。
或者更好的是,将透明度设置为 1(完全透明):
.Format.Shadow.Transparency = 1.0 'Fully transparent