首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以使用VBA跳转到特定的PowerPoint幻灯片?

是否可以使用VBA跳转到特定的PowerPoint幻灯片?
EN

Stack Overflow用户
提问于 2011-01-28 00:02:22
回答 2查看 50.5K关注 0票数 5

我一直在尝试在一张幻灯片上制作一个按钮,该按钮可以跳转到另一张名为的幻灯片。我希望能够做一些像activeslide.view.slide (“菜单幻灯片”)的事情。

这是行不通的,但我认为这样的事情应该...任何帮助都是最好的!

EN

回答 2

Stack Overflow用户

发布于 2014-04-08 04:34:30

首先,您需要实际命名您的幻灯片。幻灯片的".Name“属性与其在大纲中的名称不同,并且未与其名称相关联。我这么说只是因为很多人没有意识到这一点。必须通过VBA设置此属性。如果你不这样做,你可能会得到一些意想不到的结果。在插入幻灯片的位置,PowerPoint会将其命名为"Slide#“,因此,如果您将幻灯片插入到演示文稿的中间,则可以有多张幻灯片具有相同的名称。如果你正在寻找一个特别命名的幻灯片,并且没有重命名你的幻灯片,PowerPoint将返回它在任何循环中找到的第一个"Slide#“,用于循环浏览幻灯片集合。如果你编辑你的演示文稿并移动幻灯片,这会给你带来很多麻烦。我建议重命名您知道以后要链接到的任何幻灯片(或者编写一些代码,循环遍历整个幻灯片集合,并将每张幻灯片的".Name“属性更改为其Title 1对象内容)。

下面是重命名当前幻灯片的一些代码

代码语言:javascript
运行
复制
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

下面是获取幻灯片索引号的一些代码。它的工作原理和其他答案一样,只是更直接一点。

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
Sub MoveToSlide()

    SlideShowWindows(1).View.GotoSlide GetSlideIndex("YourSlideName")

End Sub

编辑以添加:可以将MoveToSlide子对象添加到任何对象的鼠标单击或鼠标悬停操作中,而不仅仅是命令按钮。要执行此操作,请选择要使用的对象,然后转到插入->链接->操作,然后选择运行宏。

票数 6
EN

Stack Overflow用户

发布于 2011-01-28 13:01:43

试试这段代码

通过传递名称来获取幻灯片索引的函数

代码语言:javascript
运行
复制
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导航到幻灯片

代码语言:javascript
运行
复制
Private Sub CommandButton1_Click()
    SlideShowWindows(1).View.GotoSlide GetSlideIndex("Slide2"), 1
End Sub
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4818674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档