Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 背景色和前景色的区别_Vba_Excel_Colors_Powerpoint - Fatal编程技术网

Vba 背景色和前景色的区别

Vba 背景色和前景色的区别,vba,excel,colors,powerpoint,Vba,Excel,Colors,Powerpoint,这与其说是代码问题,不如说是概念问题。当用VBA给形状着色时,我总是习惯性地使用ForeColor属性,但现在我很好奇BackColor是如何工作的。事实上,对于这种区别,标准并没有提供太多的特殊性。我能看到的唯一相关信息是: 如果在窗体对象或PictureBox控件上设置BackColor属性,则所有文本和图形(包括持久图形)都将被擦除。设置“前景色”属性不会影响已绘制的图形或打印输出 这似乎并不能充分解释它们之间的区别 我做了一些实验,在代码和不同文本以及包含的其他项目中以不同的顺序设置形状

这与其说是代码问题,不如说是概念问题。当用VBA给形状着色时,我总是习惯性地使用
ForeColor
属性,但现在我很好奇
BackColor
是如何工作的。事实上,对于这种区别,标准并没有提供太多的特殊性。我能看到的唯一相关信息是:

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

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

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


是否有人知道一个好方法来解释它们之间的差异(或者一个更好的文档来源,我可以从中了解差异)?

应用TwoColorGradient方法时使用背景色

例如,如果在PowerPoint中选择形状并键入以下内容:

?ActiveWindow.Selection.ShapeRange(1).Fill.BackColor
您可能会看到16777215(白色)返回,如果将其更改为红色,则不会看到任何更改:

ActiveWindow.Selection.ShapeRange(1).Fill.BackColor.RGB = RGB(255,0,0)
但如果应用梯度法:

ActiveWindow.Selection.ShapeRange(1).Fill.TwoColorGradient _
  msoGradientDiagonalUp, 1

然后改变背景色,你会看到变化

先生,你是个圣人。要澄清的是,
TwoColorGradient
属性是唯一使用背景色的东西,还是只是主要用途?填充图案也使用背景色。事实上,如果给形状填充图案,可以选择前景色和背景色。