有没有直接的方法来获取PowerPoint演示文稿中幻灯片的索引?

Mat*_*ias 5 powerpoint vba vsto

我试图以编程方式复制PowerPoint演示文稿中的幻灯片,并将其粘贴到原始文件后.

我的第一个想法是获取旧幻灯片的索引,并将副本添加到所需的新索引,但我似乎无法找到一种直接的方法来检索该索引.我希望有类似的东西Slides.IndexOf(Slide slide),但找不到那样的东西.我最后编写了非常老派的代码,这似乎有用,但我很好奇是否有更好的方法来做到这一点.

var slide = (PowerPoint.Slide)powerpoint.ActiveWindow.View.Slide;
var slideIndex = 0;
for (int index = 1; index <= presentation.Slides.Count; index++)
{
    if (presentation.Slides[index] == slide)
    {
        slideIndex = index;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是C#/ VSTO,但任何可以让我走上正确道路的输入都值得赞赏,无论是VBA还是VB!

Tod*_*ain 1

是的,您想要的是Duplicate返回一个SlideRange. 下面是一个 VBA 示例:

Sub DuplicateSlide()
    Dim ap As Presentation
    Set ap = ActivePresentation
    Dim sl As SlideRange
    Set sl = ap.Slides(2).Duplicate
End Sub
Run Code Online (Sandbox Code Playgroud)

要获取幻灯片的索引,您可以使用以下命令:

Sub GetSlideIndex()
    Dim ap As Presentation
    Set ap = ActivePresentation
    Set sl = ap.Slides(2)
    Debug.Print sl.SlideIndex
End Sub
Run Code Online (Sandbox Code Playgroud)