gpt4 book ai didi

vba - 使用 VBA 更改 Powerpoint 2013 中幻灯片元素的颜色

转载 作者:行者123 更新时间:2023-12-02 12:12:32 25 4
gpt4 key购买 nike

由于公司品牌 reshape 工作,我想要修改一份 150 张幻灯片的 Powerpoint 演示文稿。我们之前的绿松石色已用于文本、线条、形状和形状填充。我想构建一个贯穿整个演示文稿的 VBA 脚本,并一次性修改所有幻灯片,并将这种蓝色替换为我们新的深灰色。

旧的公司颜色是 RGB(0, 176, 240) - 绿松石色

新的企业颜色是 RGB(71, 67, 65) - 深灰色

我在互联网上尝试了多种不同的 vba,但无法使其正常工作。这是旧颜色的典型幻灯片的屏幕截图 - 所有蓝色项目都应更改为深灰色:

screenshot

来自一位乐于助人的论坛成员的这段 VBA 代码对于形状填充非常有效 - 如果可以对其进行重新设计以包括任何文本和形状轮廓和线条,那就完美了。

Sub ChangeShapeColor()

Dim oSh As Shape
Dim oSl As Slide

' Look at each slide in the current presentation:
For Each oSl In ActivePresentation.Slides

' Look at each shape on each slide:
For Each oSh In oSl.Shapes

' IF the shape's .Fill.ForeColor.RGB = turqoise color:
If oSh.Fill.ForeColor.RGB = RGB(0, 176, 240) Then

' Change it to corporate dark grey:
oSh.Fill.ForeColor.RGB = RGB(71, 67, 65)

End If

Next oSh

Next oSl

End Sub

提前致谢,

最佳答案

这应该会让你更近一步,尽管我可能会将其重写为一个可以传递 lFindColor 和 lReplaceColor 的函数。

Sub ReplaceColors()

Dim lFindColor As Long
Dim lReplaceColor As Long
Dim oSl As Slide
Dim oSh As Shape
Dim x As Long

lFindColor = RGB(255, 128, 128)
lReplaceColor = RGB(128, 128, 255)

For Each oSl In ActivePresentation.Slides
For Each oSh In oSl.Shapes
With oSh

' Fill
If .Fill.ForeColor.RGB = lFindColor Then
.Fill.ForeColor.RGB = lReplaceColor
End If

' Line
If .Line.Visible Then
If .Line.ForeColor.RGB = lFindColor Then
.Line.ForeColor.RGB = lReplaceColor
End If
End If

' Text
If .HasTextFrame Then
If .TextFrame.HasText Then
For x = 1 To .TextFrame.TextRange.Runs.Count
If .TextFrame.TextRange.Runs(x).Font.Color.RGB = lFindColor Then
.TextFrame.TextRange.Runs(x).Font.Color.RGB = lReplaceColor
End If
Next
End If
End If
End With
Next
Next

End Sub

关于vba - 使用 VBA 更改 Powerpoint 2013 中幻灯片元素的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29115072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com