我有一个图表,其中使用Chart.SeriesCollection.NewSeries
方法创建了许多新系列,之后立即格式化每个系列。我通过Series.Format.Fill.Transparency
属性设置的所有格式似乎都可以使用(标记大小/样式/颜色)条标记透明度。
我见过人们使用选择方法来设置序列标记的透明度,如下所示:
Set GraphSeries.Absolute.ErraticErrors = AbsChart.SeriesCollection.NewSeries
With GraphSeries.Absolute.ErraticErrors
.Name = "ErraticSeries"
.MarkerSize = CommonMarkerSize
.MarkerBackgroundColorIndex = Graph.XY.Formatting.MarkerFillColour.ErraticErrors
.MarkerForegroundColor = Graph.XY.Formatting.MarkerLineColur.ErraticErrors
.Select
Selection.Format.Fill.Transparency = CommonMarkerTrans
.Format.Line.Visible = msoFalse
End With
在尝试了上述方法并对其进行故障排除之后,似乎设置了标记透明度后,可以看到标记背景颜色会改变值,而不是保持其初始值的透明度,这奇怪吗?基于此发现,我返回到Series.Format.Fill.Transparency = CommonMarkerTrans
,并在监视窗口中查看了该属性,同时将其设置为CommonMarkerTrans
,并观察到初始值of Series.Format.Fill.Transparency
没有变化(-2.147484E + 09 ),也很奇怪?
当尝试通过Series.Format.Fill.Transparency
将其设置为CommonMarkerTrans
时,似乎Series.Format.Fill.Transparency = CommonMarkerTrans
属性的初始值没有改变
注意:CommonMarkerTrans
= 0.9(单身)
任何人都知道为什么会这样吗?我真的很困惑,这可能与我设置标记格式的顺序有关吗?
下面显示了提供上下文的代码段。该代码创建一个“空”图表系列,然后应用各种格式(例如标记大小),然后根据存储在两个单独数组中的数据设置系列X和Y值。
Set GraphSeries.Absolute.ErraticErrors = AbsChart.SeriesCollection.NewSeries
With GraphSeries.Absolute.ErraticErrors
.Name = "ErraticSeries"
.MarkerSize = CommonMarkerSize
.Format.Fill.Transparency = CommonMarkerTrans
.MarkerBackgroundColorIndex = Graph.XY.Formatting.MarkerFillColour.ErraticErrors
.MarkerForegroundColor = Graph.XY.Formatting.MarkerLineColur.ErraticErrors
.Format.Line.Visible = msoFalse
End With
RelOrAbsChart.SeriesCollection(SeriesName.ErraticSeries).XValues = XAxisRelOrAbs.ErraticSeries
RelOrAbsChart.SeriesCollection(SeriesName.ErraticSeries).Values = YAxisRelOrAbs.ErraticSeries
答案 0 :(得分:0)
似乎我已经解决了这个问题。由于某些原因,如果要使用Fromat.Fill. Transparency
设置标记的透明度,必须使用以下属性设置系列标记的背景色/背景色
Series.Format.Fill.ForeColor.RGB = RGB(R,G,B)
Series.Format.Fill.BackColor.RGB = RGB(R,G,B)
不是
Series.MarkerBackgroundColor = RGB(R,G,B)
Series.MarkerForegroundColor = RGB(R,G,B)
不确定为什么是这种情况,似乎有两个单独的属性来设置“标记” /背景色,而不能同时为这两个属性设置透明度,这让人感到困惑。
为什么同一件事需要两个独立且互斥的属性?为了清楚起见,也许有人可以解决这个问题或纠正我的理解?
现在可以正确设置颜色和透明度的功能代码:
Set GraphSeries.Absolute.ErraticErrors = AbsChart.SeriesCollection.NewSeries
With GraphSeries.Absolute.ErraticErrors
.Name = "ErraticSeries"
.MarkerSize = CommonMarkerSize
.MarkerStyle = xlMarkerStyleCircle
With .Format.Fill
.Visible = msoTrue
.ForeColor.RGB = Graph.XY.Formatting.MarkerFillColour.ErraticErrors
.BackColor.RGB = Graph.XY.Formatting.MarkerLineColur.ErraticErrors
.Transparency = CommonMarkerTrans
.Visible = msoTrue
End With
End with