在部分开头添加幻灯片

时间:2018-03-30 12:42:19

标签: vba powerpoint-vba tableofcontents agenda

我正在尝试在VBA for PowerPoint中编写自动议程/目录生成器代码,它根据PowerPoint演示文稿中各部分的标题生成议程项目符号。由于我还希望议程出现在每个部分的开头,我正在努力解决方法

.AddSlide(Index (I am inserting the ID of a section´s first slide here), pCustomLayout )

在该部分之前添加幻灯片(实际上在上一部分的末尾),因为它仅基于ID并且没有说"在部分插入幻灯片&#34 39;开始"。

是否有一个简单的解决方案(例如,不删除和重新创建部分)来实现幻灯片只是在一个部分的开头创建而不是在上一部分的结尾?

解决方案

 Sub moveSlidesToSectionStart(pSectionIndex, pFirst, pLast)
  Dim objPresentation As Presentation
  Set objPresentation = Application.ActivePresentation

  totalSlides = pLast - pFirst + 1
  Dim arr()
  ReDim arr(totalSlides - 1)

  For i = 0 To totalSlides - 1 'fill array with all slides (slide numbers) that need to be moved
    arr(i) = pFirst + i
  Next i

  objPresentation.Slides.Range(arr).MoveToSectionStart(pSectionIndex)

 End Sub

1 个答案:

答案 0 :(得分:1)

您可以使用幻灯片上提供的MoveToSectionStart方法。将段落索引作为参数传递,它将幻灯片放在该部分的开头。

Function MoveSlideToSectionStart(Sld As Slide, SectionIndex As Long) As Boolean

If Sld.Parent.SectionProperties.Count < SectionIndex Then
    MoveToSection = False
    Exit Function
End If

Call Sld.MoveToSectionStart(SectionIndex)
MoveToSection = True
End Function

Sub Test()
Debug.Print MoveToSection(ActivePresentation.Slides(6), 1)
End Sub