如何用vba给ppt新增幻灯片?

在ppt中如果要给当前的演示文稿新增幻灯片,可以使用新建幻灯片或者复制已有的幻灯片后粘贴,或者插入某个演示文稿文件中的幻灯片这几种方法。

以下分别介绍:

方法一:新建幻灯片

当需要在演示文稿中新增幻灯片时,可以使用Slides集合对象的AddSlide方法。

它的语法如下:

AddSlide( Index, pCustomLayout )

其中index参数为要放置的幻灯片的索引号,pCustomLayout参数为要插入的幻灯片的版式对象。

以下代码将用vba插入一个新的幻灯片,新的幻灯片与第一个幻灯片有一样的版式:

Sub QQ1722187970()
    Dim oPPT As Presentation
    Dim oSlide As Slide
    Dim oCL As CustomLayout
    Set oPPT = PowerPoint.ActivePresentation
    With oPPT
        Set oCL = .Slides(1).CustomLayout
        Set oSlide = .Slides.AddSlide(2, oCL)
    End With
End Sub

除了可以使用Slides集合对象的AddSlide方法添加幻灯片,还可以使用可以使用Slides集合对象的Add方法添加幻灯片。

它的语法如下:

Function Add(Index As Long, Layout As PpSlideLayout) As Slide

其中index参数为要放置的幻灯片的索引号, Layout参数为要插入的幻灯片的版式常量,它与AddSlide方法不同之处在于 Layout参数是一个常量,不是版式对象。

方法2:复制幻灯片后粘贴

使用Slide对象的Duplicate方法复制一个幻灯片,或者使用Slide对象的Copy方法复制幻灯片到剪贴板,然后使用Slides对象的Paste方法粘贴幻灯片到指定的幻灯片后面。

其中Slides对象的Paste方法可以指定要在第几个幻灯片之前粘贴剪贴板中的幻灯片,如下代码所示:

Sub QQ1722187970()
    Dim oPPT As Presentation
    Dim oSlide As Slide
    '当前ppt演示文稿
    Set oPPT = PowerPoint.ActivePresentation
    With oPPT
        '第一个幻灯片
        Set oSlide = .Slides(2)
        '复制到剪贴板
        oSlide.Copy
        '粘贴使其成为第2个幻灯片
        .Slides.Paste (2)
    End With
End Sub

而Slide对象的Duplicate方法复制一个幻灯片将直接将新的幻灯片插入在被复制的幻灯片之后,代码如下:

Sub QQ1722187970()
    Dim oPPT As Presentation
    Dim oSlide As Slide
    Dim oNSlide As SlideRange
    '当前ppt演示文稿
    Set oPPT = PowerPoint.ActivePresentation
    With oPPT
        '第一个幻灯片
        Set oSlide = .Slides(2)
       Set oNSlide = oSlide.Duplicate
       MsgBox oNSlide.SlideIndex
    End With
End Sub
       

发表评论