欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 将所有PPT中的字体颜色白色改成黑色---使用AI提高效率

将所有PPT中的字体颜色白色改成黑色---使用AI提高效率

2025/3/13 7:18:16 来源:https://blog.csdn.net/weixin_45498306/article/details/141356002  浏览:    关键词:将所有PPT中的字体颜色白色改成黑色---使用AI提高效率

背景

在工作中,遇到一个PPT,老板需求,将PPT页面的所有的字体从白色改成黑色,

检查了发现,这个ppt有几个问题,没有使用母版,都是每一页进行编写,
一共500多页,

如果每个都改,改死人了,,,,

在这里插入图片描述

那么,使用ai来进行处理该情况,

文本颜设置为黑色

找百度提问:

“使用vba写一段代码,将ppt里面所有的页面的字体的颜色设置为黑色”

Sub SetAllTextToBlack()  Dim sld As Slide  Dim shp As Shape  Dim txtRng As TextRange  ' 遍历每个幻灯片  For Each sld In ActivePresentation.Slides  ' 遍历每个形状  For Each shp In sld.Shapes  ' 检查形状是否包含文本(即,是否为文本框)  If shp.HasTextFrame Then  If shp.TextFrame.HasText Then  ' 获取文本范围  Set txtRng = shp.TextFrame.TextRange  ' 遍历文本范围中的每个段落(对于简单的文本,这可能只有一个段落)  ' 但对于包含多个段落的文本框,这确保了所有文本都被修改  With txtRng  .Font.Color.RGB = RGB(0, 0, 0) ' 设置颜色为黑色  ' 如果文本框包含多个段落,需要遍历每个段落  Dim i As Long  For i = 1 To .Paragraphs.Count  .Paragraphs(i).Font.Color.RGB = RGB(0, 0, 0) ' 再次设置颜色为黑色(可选,取决于你的具体需求)  Next i  End With  End If  End If  Next shp  Next sld  
End Sub

请注意,虽然我在注释中提到了可能需要遍历每个段落,但在许多情况下,如果你只是简单地将整个文本框的文本颜色设置为黑色,那么直接设置TextRange的Font.Color.RGB属性就足够了。然而,如果你的文本框包含多个段落,并且你想要确保每个段落都被单独处理(尽管在这个特定的例子中,它们都将被设置为相同的颜色),那么你可以通过遍历Paragraphs集合来实现这一点。
这段代码将遍历活动演示文稿中的所有幻灯片,查找包含文本的形状,并将这些文本的颜色更改为黑色。请确保在运行此代码之前保存你的工作,以防不测。

实际操作,

  1. 打开ppt
  2. Alt +F11
  3. 运行代码
    在这里插入图片描述

表格内字体设置为黑色

发现还有表格的颜色没有改变,于是增加表格的内容,重新提问,生成代码如下;

在这里插入图片描述

Sub SetAllTextAndTableTextToBlack()Dim sld As SlideDim shp As ShapeDim tbl As TableDim rw As Long, cl As LongDim cell As cell' 遍历每个幻灯片For Each sld In ActivePresentation.Slides' 遍历每个形状For Each shp In sld.Shapes' 检查形状是否为表格If shp.HasTable ThenSet tbl = shp.Table' 遍历表格的每一行和列For rw = 1 To tbl.Rows.CountFor cl = 1 To tbl.Columns.CountSet cell = tbl.cell(rw, cl)' 设置单元格中文本的字体颜色为黑色cell.Shape.TextFrame.TextRange.Font.Color.RGB = RGB(0, 0, 0)' 如果单元格包含多个段落(虽然表格单元格通常不这样),也可以遍历它们' 但对于简单的字体颜色更改,上面的设置就足够了Next clNext rw' 检查形状是否包含文本(即,是否为文本框或类似的文本容器)ElseIf shp.HasTextFrame ThenIf shp.TextFrame.HasText Then' 设置文本框中文本的字体颜色为黑色shp.TextFrame.TextRange.Font.Color.RGB = RGB(0, 0, 0)End IfEnd IfNext shpNext sld
End Sub

直接跑,运行后,ok

删除图片

那么,我还想删除其中的所有的背景图片,重新提问,


使用vba写一段代码,删除每一页PPT中图片宽大于7的图片

Sub DeleteWideImagesFromEachSlide()  Dim sld As Slide  Dim shp As Shape  ' 遍历每张幻灯片  For Each sld In ActivePresentation.Slides  ' 遍历幻灯片上的每个形状  For Each shp In sld.Shapes  ' 检查形状是否为图片  If shp.Type = msoPicture Then  ' 检查图片的宽度是否大于7(注意:这里的单位取决于PowerPoint的设置,通常是磅或厘米)  If shp.Width > 7 Then  ' 删除宽度大于7的图片  shp.Delete  ' 注意:删除形状后,集合会发生变化,因此不能继续在当前循环中迭代  ' 使用GoTo语句跳出内层循环(虽然这不是最佳实践,但在这种情况下是可行的)  GoTo ContinueOuterLoop  End If  End If  
ContinueOuterLoop:  Next shp  Next sld  
End Sub

直接跑,图片没被删除,发下是文本框,重新使用rpa进行模拟鼠标操作进行删除
最终ppt的结果如下,漂亮。。。。

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词