Powerpoint VBA:清除形状颜色

时间:2017-07-28 09:40:07

标签: vba powerpoint powerpoint-vba

VBA专家的好日子,

我正在尝试编写一个搜索形状颜色的代码,然后将其放置到某个位置。

例如

If shape.Fill.ForeColor.RGB = RGB(210, 210, 210) Then 

With shape
        .Width = 700 
        .Height = 20
        .Top = 80
        .Left = 30
        .Name = "TitleTextBox"
        .Fill.Visible = msoFalse
        .Fill.Transparency = 1.0  '(somehow when I type 1.0 it will become 1#, not sure why on this also)
End With

End if

我如何使用我的代码:

我使用此代码将填充颜色Gray = RGB(210,210,210)添加到某些形状然后清除颜色并将形状重新定位到我想要的位置

然而,当我再次运行此代码时,添加了Gray颜色的形状将再次重新定位,即使它没有任何填充。

不知怎的,我觉得这个形状已经记住颜色适用于他们,这不是我想要的。

感谢是否有人可以提供我如何克服这个问题的一些见解。

谢谢

1 个答案:

答案 0 :(得分:1)

试试这样:

Option Explicit
Public Sub TestMe()

    Dim sh      As Shape
    Dim sld     As Slide

    Set sld = Application.ActiveWindow.View.Slide

    For Each sh In sld.Shapes
        If sh.Fill.ForeColor.RGB = RGB(210, 210, 210) Then
            With sh
                .Fill.ForeColor.RGB = RGB(0, 0, 0)
                .Width = 700
                .Height = 20
                .Top = 80
                .Left = 30
                .Name = "TitleTextBox"
                .Fill.Visible = msoFalse
                .Fill.Transparency = 1#
            End With
        End If
    Next sh
End Sub

找到灰色形状后,请确保将其颜色更改为RGB(0,0,0)。因此,如果再次运行代码,它将不再是灰色,也不会被考虑在内。我用这条线做了:

        .Fill.ForeColor.RGB = RGB(0, 0, 0)