在PPT中,通过幻灯片母版可以批量设置幻灯片的一些共同元素。
在vba中Master对象表示幻灯片母版,可以通过Presentation对象的SlideMaster属性访问Master对象。
在Master对象中CustomLayouts属性表示幻灯片母版下的幻灯片版式,通过CustomLayouts对象的Add方法可以添加一个自定义的幻灯片版式。
如果要在自定义的版式中添加占位符,可以使用Shapes 对象的AddPlaceholder方法。
有了上述的知识,接下来我们介绍用VBA操作PPT母版的常见需求
一、用VBA在PPT幻灯片母版中新建一个版式
Sub QQ1722187970()
Dim oPPT As Presentation
Set oPPT = PowerPoint.ActivePresentation
Dim oMaster As Master
Dim oCL As CustomLayout
Set oMaster = oPPT.SlideMaster
Dim oSP As Shape
With oMaster
Set oCL = .CustomLayouts.Add(1)
With oCL
.Name = "自定义版式"
End With
End With
End Sub
二、用VBA在PPT幻灯片母版中新建一个版式,并且添加占位符
Sub QQ1722187970()
Dim oPPT As Presentation
Set oPPT = PowerPoint.ActivePresentation
Dim oMaster As Master
Dim oCL As CustomLayout
Set oMaster = oPPT.SlideMaster
Dim oSP As Shape
With oMaster
Set oCL = .CustomLayouts.Add(1)
With oCL
.Name = "自定义版式"
'添加占位符
Set oSP = .Shapes.AddPlaceholder(ppPlaceholderTable, 0, 0, 100, 100)
End With
End With
End Sub
三、用VBA在PPT幻灯片母版中删除自定义版式
Sub QQ1722187970()
Dim oPPT As Presentation
Set oPPT = PowerPoint.ActivePresentation
Dim oMaster As Master
Dim oCL As CustomLayout
Set oMaster = oPPT.SlideMaster
Dim oSP As Shape
With oMaster
For i = .CustomLayouts.Count To 1 Step -1
Set oCL = .CustomLayouts(i)
sName = oCL.Name
'删除名称为自定义的版式
If sName Like "*自定义*" Then
oCL.Delete
End If
Next i
End With
End Sub


发表评论