改变形状的背景色

时间:2012-07-19 02:00:43

标签: excel-vba backcolor vba excel

我正在尝试更新工作表上所有标签的背景颜色。我想用RGB值来表示颜色,但是我被困在两个地方。这是我现在的代码:

Sheet2.Shapes("Label 2").Fill.BackColor.RGB = RGB(220, 105, 0)

此代码将无错误地运行,但似乎没有任何效果。我的标签开始是白色(或可能透明),永远不会改变。任何人都可以告诉我我需要做些什么来使这项工作?我也添加了这个,但它没有做任何事情:

shp.Fill.Solid

接下来,我想在变量中捕获这个RGB值,这样我就不必重复重新输入。基本上,我正在寻找这样的东西:

dim col as Color
col = RGB(220,105,0)
Sheet2.Shapes("Label 2").Fill.BackColor.RGB = col

我知道没有名为Color的变量类型,但我认为你可以看到我想要做的事情。

3 个答案:

答案 0 :(得分:8)

尝试设置ForeColor:

Sheet2.Shapes("Label 2").Fill.ForeColor.RGB = RGB(220, 105, 0)

弄清楚该怎么做的好方法是在自己进行调整时录制宏。您可以在以后检查生成的代码并将其用作起点。


以下是一个过程示例,该过程将向活动表添加一个矩形,向其中添加一些文本,然后使用您的RGB值对其进行着色:

Public Sub AddRectangleWithText()
    Dim textRectangle As Shape

    Set textRectangle = ActiveSheet.Shapes & _
        .AddShape(msoShapeRectangle, 10, 80, 250, 50)

    ' add your text
    textRectangle.TextFrame.Characters.Text = "Your mother was a hamster."

    ' fill the shape with the rgb color of your choice
    textRectangle.Fill.ForeColor.RGB = RGB(220, 105, 0)

End Sub

答案 1 :(得分:4)

ForeColor实际控制Excel中注释/文本框的背景颜色,如下所示;

  • Activecell.Comment.Shape.Fill.ForeColor.RGB = RGB(240, 255, 250) 'Mint Green

因为Comment / TextBox ForeColor是Applicatoin背景颜色的前景填充。

答案 2 :(得分:0)

我需要添加

textRectangle.Fill.Visible = msoTrue

在Office 2016中

textRectangle.Fill.ForeColor.RGB = RGB(220, 105, 0)

发挥作用。