我一直试图在幻灯片上创建一个按钮,跳转到另一张名为的幻灯片。我希望能够执行类似activeslide.view.slide(“菜单幻灯片”)
的操作这不起作用,但我认为应该这样......任何帮助都会很棒!
答案 0 :(得分:6)
首先,您需要实际命名幻灯片。幻灯片的“.Name”属性与大纲中的名称不同,也未与其名称相关联。我只是这样说,因为很多人都没有意识到这一点。您必须通过VBA设置此属性。如果您不这样做,您可能会得到一些意想不到的结果。 PowerPoint将幻灯片命名为“幻灯片#”,因此如果您将幻灯片插入演示文稿的中间,则可以使用多个具有相同名称的幻灯片。如果您正在寻找一个专门命名的幻灯片并且没有重命名幻灯片,PowerPoint将返回它在您用于循环播放幻灯片集合的任何循环中找到的第一个“幻灯片#”。如果您编辑演示文稿并移动幻灯片,这可能会给您带来很多麻烦。我建议重命名你知道以后要链接到的任何幻灯片(或者编写一些循环遍历整个幻灯片集合并将每个幻灯片的“.Name”属性更改为其Title 1对象内容的内容)。
以下是一些重命名当前幻灯片的代码
Sub ChangeSlideName()
Dim NewName As String
Dim ActiveSlide As Slide
Set ActiveSlide = ActiveWindow.View.Slide
NewName = InputBox("Enter new slide name for slide " & _
ActiveSlide.SlideIndex, "New Slide Name", ActiveSlide.Name)
If NewName = "" Then
Exit Sub
End If
ActiveSlide.Name = NewName
End Sub
下面是一些获取幻灯片索引号的代码。它就像另一个答案一样,只是更直接一点。
Function GetSlideIndex(SlideName As String)
For Each Slide In ActivePresentation.Slides
If Slide.Name = SlideName Then
GetSlideIndex = Slide.SlideIndex
Exit Function
End If
Next
End Function
这是实际将您发送到幻灯片的子
Sub MoveToSlide()
SlideShowWindows(1).View.GotoSlide GetSlideIndex("YourSlideName")
End Sub
编辑添加:MoveToSlide子可以添加到任何对象的鼠标单击或鼠标悬停操作,而不仅仅是命令按钮。为此,请选择要使用的对象,然后转到插入 - >链接 - >操作并选择“运行宏”。
答案 1 :(得分:4)
试试这段代码
通过传递名称
来获取幻灯片索引的函数Function GetSlideIndex(Slide As String) As Integer
Dim retVal As Integer
retVal = 0
For i = 1 To ActivePresentation.Slides.Count
If ActivePresentation.Slides(i).Name = Slide Then
retVal = i
Exit For
End If
Next
GetSlideIndex = retVal
End Function
此处使用CommandButton
导航到幻灯片
Private Sub CommandButton1_Click()
SlideShowWindows(1).View.GotoSlide GetSlideIndex("Slide2"), 1
End Sub