如果形状具有文本纯色,则更改形状的背景色

时间:2019-06-14 20:00:37

标签: powerpoint-vba

我们目前正在审核公司关于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

我写了几乎可以运行的代码,标题由于某种原因也被更改了。我希望没有填充的形状保持不变。 任何朝着正确方向的指点将不胜感激

0 个答案:

没有答案