使用 VBA 代码从自定义模板应用特定布局

Apply specific layout from custom template with VBA code

Sub ImportCharts()

Dim strTemp As String
Dim strPath As String
Dim strFileSpec As String
Dim oSld As Slide
Dim oPic As Shape

strPath = ActivePresentation.Path & "\Images\"
strFileSpec = "*.png"
strTemp = Dir(strPath & strFileSpec)


Do While strTemp <> ""
    Set oSld = ActivePresentation.Slides.Add(ActivePresentation.Slides.count + 1, ppLayoutCustom)
    Set oPic = oSld.Shapes.AddPicture(FileName:=strPath & strTemp, _
    LinkToFile:=msoFalse, _
    SaveWithDocument:=msoTrue, _
    Left:=0.45 * 72, _
    Top:=0.8 * 72, _
    Width:=10.1 * 72, _
    Height:=6.25 * 72) '
    strTemp = Dir

Loop
End Sub

在 Do while 循环中,ppLayoutCustom 添加第一个自定义布局。但我想添加内容页面布局作为我的自定义布局(参考图片)。

Click here for the image

This thread 有同样的问题,这个答案主要是重申那里已经显示的内容。

例如,如果您知道自定义布局“内容页”的索引始终为 3,那么您可以这样做:

With ActivePresentation
    .Slides.AddSlide _
        Index:=.Slides.Count + 1, _ 
        pCustomLayout:=.Designs(1).SlideMaster.CustomLayouts(3)
End With

如果您不确定您的自定义布局是否始终具有相同的索引,您需要先遍历所有自定义布局,找到您想要的布局的索引,然后使用代码多于。当然,您可以将 3 替换为自定义布局的真实索引。