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

时间:2010-07-02 05:08:42

标签: vba vsto powerpoint

我正在尝试以编程方式复制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;
    }
}

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

1 个答案:

答案 0 :(得分:3)

是的,您想要的是Duplicate,它会返回SlideRange。这是VBA中的一个例子:

Sub DuplicateSlide()
    Dim ap As Presentation
    Set ap = ActivePresentation
    Dim sl As SlideRange
    Set sl = ap.Slides(2).Duplicate
End Sub

要获得幻灯片的索引,您可以使用:

Sub GetSlideIndex()
    Dim ap As Presentation
    Set ap = ActivePresentation
    Set sl = ap.Slides(2)
    Debug.Print sl.SlideIndex
End Sub