我有一个150张幻灯片的powerpoint演示文稿,我想根据公司的品牌重塑努力进行修改。我们以前的绿松石色已用于文字,线条,形状和形状填充。我想构建一个贯穿整个演示文稿的VBA脚本,并一举修改所有幻灯片,并用我们新的深灰色替换这种蓝色。
旧的企业颜色是RGB(0,176,240) - 绿松石
新的企业颜色是RGB(71,67,65) - 深灰色
我在互联网上尝试过多种不同的vba,但无法让它正常工作。以下是旧颜色的典型幻灯片的屏幕截图 - 所有蓝色项目都应更改为深灰色:
来自一个有用的论坛成员的这段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
提前致谢,
答案 0 :(得分:7)
这应该让你更近一步,虽然我可能会把它重写为你可以将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
答案 1 :(得分:0)
我想添加另一个解决方案,而不使用VBA。它可能有点笨拙,但效果非常好。这个想法是进入pptx文件,并对颜色代码执行查找和替换操作。这将替换整个演示文稿中出现的所有特定颜色的所有(可以是普通文本,阴影,图形的某些部分,表格的边框,您可以为其命名)。
步骤1。创建原始Powerpoint文件的备份!
第2步。如果演示文稿的扩展名为 .ppt ,请在Powerpoint中将其打开,然后将其另存为 .pptx 。 >
步骤3。将扩展名 .pptx 更改为 .zip (并忽略Windows的任何警告)。例如,将“ my_presentation.pptx”更改为“ my_presentation.zip”。原因是pptx文件实际上是zip文件。通过将文件重命名为 .zip ,您将能够提取该文件。
步骤4。提取该zip文件。您将获得一个包含很多xml文件(可能还有其他文件)的文件夹(和子文件夹)。这些xml文件中的某个位置必须有颜色定义,尽管我们不知道确切的位置。
步骤5。确定旧颜色和新颜色的十六进制代码。例如,如果旧颜色是绿松石色(rgb:0,176,240),则其十六进制代码将为00B0F0。如果新颜色为深灰色(rgb:71,67,55),则其十六进制代码为474337。
第6步。下载,安装并打开(免费)文本编辑器Notepad ++。 (您可以在这里找到它:https://notepad-plus-plus.org/。)
第7步。在Notepad ++中,单击“搜索>>在文件中查找...”。这使您可以立即在所有提取的(xml-)文件中执行查找和替换操作。选择正确的文件夹,搜索旧的颜色代码(00B0F0),然后将其替换为新的颜色代码(474337)。确保搜索也在子文件夹中执行。 See this screenshot.
第8步。现在,将文件再次压缩为zip文件。重要的是,选择完全之前提取的文件,不其父文件夹。 (如果不小心在父文件夹的级别上进行压缩,则会在zip文件的文件夹层次结构中创建一个额外的层,这会使Powerpoint感到困惑。)
第9步。将新创建的zip文件的扩展名更改为 .pttx (并忽略Windows发出的任何警告)。
警告:在STEP 7中搜索的十六进制颜色代码也很有可能显示为完全不同的东西(例如电话号码或其他)。如果您有可能以这种方式弄乱您的演示文稿,请搜索 val =“ 00B0F0” ,而不只是 00B0F0 。