我们目前正在审核公司关于ERP系统的准则。我们在PowerPoint中制定了200多个准则,并且都需要对其进行标准化和更新以符合新标准。
主要问题是我需要更改所有形状的颜色。根据背景色或背景色不足,我需要为背景和字体设置不同的主题颜色。
我最初的计划是使用基于形状类型的循环进行此操作。我写了一段代码,将所有形状更改为正确的颜色(如果不是标题的话)。那进展不顺利。形状很多,我无法使其正常工作。标题将突然具有矩形形状,而不是标题,并且空框也将被填充。我还需要其他东西。
我的计划是这样的:使用嵌套循环找出形状是否具有填充颜色和文本(如果是)。将其设置为适当的公司主题颜色。然后检查是否有文字并进行相应设置。只有两种颜色,一种是蓝色,背景是白色,文本是白色。
Sub Change_bgcolor_if_shape_has_solid_color_and_text()
Dim oSl As Slide
Dim oSh As Shape
With ActivePresentation
For Each oSl In .Slides
For Each oSh In oSl.Shapes
With oSh
If .Fill.Type = msoFillSolid Then
oSh.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent1
If oSh.TextFrame.HasText Then
oSh.TextFrame.TextRange.Font.Color.ObjectThemeColor = msoThemeColorBackground1
End If
End If
End With
Next
Next
End With
End Sub
我写了几乎可以运行的代码,标题由于某种原因也被更改了。我希望没有填充的形状保持不变。 任何朝着正确方向的指点将不胜感激