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颜色的形状将再次重新定位,即使它没有任何填充。
不知怎的,我觉得这个形状已经记住颜色适用于他们,这不是我想要的。
感谢是否有人可以提供我如何克服这个问题的一些见解。
谢谢
答案 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)