当前位置:编程学习 > VB >>

高手进!!PPT 宏 分批修改正文和标题

求教高手:这段代码只能实现所有页面的字体一起修改,但是我需要正文改一种,标题另外一种格式,请问如何实现?是还需要再添加一段代码吗?请高手帮忙完善!谢谢哈~

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 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
                If .Color.SchemeColor = ppTitle Then
                  .Name = "楷体_GB2312" '改成你需要的字体
                  .Size = 28 '改成你需要的文字大小
                  .Color.RGB = RGB(Red:=255, Green:=0, Blue:=0) '改成你想要的文字颜色
                Else
                  .Name = "楷体_GB2312" '改成你需要的字体
                  .Size = 20 '改成你需要的文字大小
                  .Color.RGB = RGB(Red:=255, Green:=255, Blue:=0) '改成你想要的文字颜色
                End If
              End With
            End If
        Next
      Next
End Sub
非常感谢,但是我运行之后,还是上面的标题和下面的正文都是一个色啊......不过有少数的文本框倒是变成不同的颜色了,但是不是出于PPT最上面的标题的位置,望指教!谢谢~~ 这个需要你录制宏,看看两者属性上有什么差别,找到差别才可以

引用 2 楼 ninozj 的回复:
非常感谢,但是我运行之后,还是上面的标题和下面的正文都是一个色啊......不过有少数的文本框倒是变成不同的颜色了,但是不是出于PPT最上面的标题的位置,望指教!谢谢~~
我是个门外汉,都是今天速成的....高手你看看我还有什么方法? 我不会录制宏啊.....我知道你讲的问题是程序语言中的PPtitle 找不到PPT中的标题这一栏,但不知道还有什么方法可以帮助这句语句来定位? 我这里没你的PPT文件,你可以这样试试:
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
                If TypeOf oShape Is TextBox Then
                  .Name = "楷体_GB2312" '改成你需要的字体
                  .Size = 28 '改成你需要的文字大小
                  .Color.RGB = RGB(Red:=255, Green:=0, Blue:=0) '改成你想要的文字颜色
                Else
                  .Name = "楷体_GB2312" '改成你需要的字体
                  .Size = 20 '改成你需要的文字大小
                  .Color.RGB = RGB(Red:=255, Green:=255, Blue:=0) '改成你想要的文字颜色
                End If
              End With
            End If
        Next
      Next
End Sub

你应该先获取文本框的名称,再根据文本框的名称对指定的文本框进行操作。
补充:VB ,  VBA
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,