51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2564|回复: 1
打印 上一主题 下一主题

[其他] ppt2010如何用vba批量修改字体和段落

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-3-13 14:36:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
从网上找了一段代码,运行时总是出错(删除了on error resume next,不删也没效果)
就是set otextrange那一句,大家帮忙看看怎么修改
批量修改字体:
Sub OED01() '批量修改字体格式、大小和颜色
Dim oShape As Shape
Dim oSlide As Slide
Dim oTxtRange As TextRange
On Error Resume Next
For Each oSlide In ActivePresentation.Slides
   For Each oShape In oSlide.Shapes
          Set oTxtRange = oShape.TextFrame.TextRange 这一句出错,执行不了
          If Not IsNull(oTxtRange) Then
         With oTxtRange.Font
             .Name = "楷体_GB2312"       '改成你需要的字体
             .Size = 20       '改成你需要的文字大小
             .Color.RGB = RGB(Red:=255, Green:=0, Blue:=0) '改成你想要的文字颜色
          End With
          End If
   Next
   Next
End Sub
——————————————————————————————
Sub ParagraphFormat() '批量修改段落格式
Dim oShape As Shape
Dim oSlide As Slide
Dim oTxtRange As TextRange
On Error Resume Next
For Each oSlide In ActivePresentation.Slides
   For Each oShape In oSlide.Shapes
          Set oTxtRange = oShape.TextFrame.TextRange 这一句出错,执行不了
          If Not IsNull(oTxtRange) Then        '此处之前都是设置如何在所有ppt间循环,需特别注意 oTxtRange
         With oTxtRange.ParagraphFormat      '此处开始用所需特定语句替换,一开始会是ActiveWindow.
Selection.TextRange.ParagraphFormat,需要用oTxtRange替换前面的部分
        .LineRuleWithin = msoTrue
        .SpaceWithin = 3.25
        .LineRuleBefore = msoTrue
        .SpaceBefore = 0.2
        .LineRuleAfter = msoFalse
        .SpaceAfter = 0
    End With
          End If
   Next
   Next
End Sub

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-1 01:45 , Processed in 0.060764 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表