背景色和前景色的区别

RGA*_*RGA 5 excel powerpoint vba colors

这更多的是一个概念问题,而不是代码问题。当使用 VBA 为形状着色时,我一直使用该ForeColor属性作为习惯,但现在我很好奇它是如何BackColor发挥作用的。该文档确实没有提供太多关于区别的具体信息。我能看到的唯一相关信息是:

如果在Form对象或PictureBox控件上设置BackColor属性,则所有文本和图形(包括持久图形)都将被删除。设置ForeColor属性不会影响已绘制的图形或打印输出。

这似乎并不能充分解释它们之间的区别。

我做了一些实验,在代码中以不同的顺序设置形状的前景色和前景色,以及包含的不同文本和其他项目,但我一生都找不到任何一致的差异。坦率地说,该属性似乎BackColor完全没用,因为ForeColor它似乎只是写了任何颜色。

有谁知道解释它们之间差异的好方法(或者更好的文档来源,我可以在其中阅读差异)?

Jam*_*och 3

当您应用 TwoColorGradient 方法时,将使用 BackColour。

例如,如果您在 PowerPoint 中选择一个形状并输入以下内容:

?ActiveWindow.Selection.ShapeRange(1).Fill.BackColor
Run Code Online (Sandbox Code Playgroud)

您可能会看到返回 16777215(白色),如果将其更改为红色,您将看不到任何变化:

ActiveWindow.Selection.ShapeRange(1).Fill.BackColor.RGB = RGB(255,0,0)
Run Code Online (Sandbox Code Playgroud)

但如果应用渐变方法:

ActiveWindow.Selection.ShapeRange(1).Fill.TwoColorGradient _
  msoGradientDiagonalUp, 1
Run Code Online (Sandbox Code Playgroud)

然后改变BackColor,你会看到变化。