按 ID 或名称而不是编号导航到 PPT 幻灯片

Navigate to PPT Slide by its ID or Name instead of Number

ActivePresentation.SlideShowWindow.View.GotoSlide x 要求我们输入不同的幻灯片编号。如果我将其引用到幻灯片 3,然后移动幻灯片 3 的位置,代码将不再引用该幻灯片。

如何通过引用 SlideID 或 SlideName 而不是幻灯片编号来解决这个问题。

谢谢。

如果我对问题的理解正确,您希望能够转到演示文稿中的特定幻灯片,而不管它出现在演示文稿中的什么位置(即因为在它之前添加了其他幻灯片或它已被移动到不同的位置)。

如果是这样,您可以使用幻灯片的 SlideID 标记演示文稿:

ActivePresentation.Tags.Add "IndexSlide", Cstr(lSlideID)

(其中 IndexSlide 是您分配给幻灯片的任何方便的名称;您可以为要跟踪的不同幻灯片设置多个标签。当然,lSlideID 是幻灯片的 SlideID

您需要编写一个函数来检索幻灯片的 SlideIndex,给定 SlideID 并像这样调用它(aircode ...您可能需要 move/remove 一两个括号):

ActivePresentationSlideShowWindow.View.GoToSlide ( _
  SlideIndexFromSlideID(cLng(ActivePresentation.Tags("IndexSlide")))

这从演示文稿中获取名为 IndexSlide 的标签,它是 IndexSlide 的 SlideID,将其转换为 Long(标签是字符串),将其传递给您的 SlideIndexFromSlideID 函数,returns 幻灯片的当前 SlideIndex 。 .. 为你 GoToSlide with.

[稍后:添加返回 SlideIndex 所需的函数]

Function SlideIndexFromSlideID(lSlideID As Long) As Long

  SlideIndexFromSlideID = ActivePresentation.Slides.FindBySlideID(lSlideID).SlideIndex

End Function