2015-05-30 20 views
1

我在Excel 2013中构建一个应用程序,绘制图形,然后使用AddPolyline填充图形下方的区域以创建形状。然后使用RGB 和透明度对这些形状着色。Excel 2013忽略形状的线透明度

一切工作正常,除了Excel完全忽略了线的透明度因素。

myShape.Fill.ForeColor.RGB = RGB(R, G, B) 
myShape.Fill.Transparency = T 

myShape.Line.ForeColor.RGB = RGB(R, G, B) 
myShape.Line.Transparency = T 

目前,我不得不住到这是只是让行无形使用的备份解决方案:

myShape.Line.Visible = False 

然而,这留下我的形状之间的白色小标记,原本应该是完全一致。

我曾尝试之类的东西拍行重量小等

其他人能证实这种行为,因为一个错误,或者指出什么我做错了吗?

编辑:

附上问题的屏幕截图。

white borders

+0

是否有可能为你上传与whitemarkers的照片吗? – bonCodigo

+1

@bonCodigo我用截图编辑了OP。这是在我将“False”改为“msoFalse”后没有影响。 – ignition

回答

1

确保你正在处理的是不是一个边框,但一个真正的line。检查LineFormat属性。

对于一行,LineFormat对象包含行本身的格式信息;对于具有边框的形状,此对象包含形状边框的格式信息。

myShape.Line.Visible = msoFalse尝试

不要忘记Transparency属性LineFormat对象INFACT指形状的指定fill

您还可以录制宏,而以下this tutorial to check the exact properties of polylines.

在另一方面,你为什么不令而行颜色相同形状的颜色吗?在这种情况下,线条和形状不会有区别。但是,这显然取决于您的使用和意图。

很少提及审议关于buggy & awakward shape, line properties.

+0

我的确想让线条的颜色与填充颜色完全一致,但考虑到Excel忽略了透明度因素,颜色出现的截然不同。 – ignition

+1

此外,更改myshape.line.forecolor肯定会更改形状的边框,所以我确实认为这是正确的参数。 – ignition

+0

很明显,你在这里有一个边框组件。如果您注意到第一个链接:我的答案中提供了'line',VBA示例显示清晰,线条颜色,样式是通过'forecolor'属性实现的。 – bonCodigo