在PowerPoint中分支幻灯片(VBA)

6
我正在尝试创建一个返回按钮,但使用超链接只会将我带回到上一页并最终陷入循环...例如,如果我有幻灯片1,它链接到幻灯片3、4和5,然后幻灯片3链接到6和7。如果我当前在幻灯片7上,点击返回成功地将我带回到幻灯片3,但是我想要点击返回并最终回到幻灯片1而不是回到幻灯片7(希望我表达清楚!)。
我认为我唯一能做到的方式是使用VBA,有人可以给我一些关于创建返回按钮的建议吗?(我正在使用PowerPoint 2007)

3
脚本编写就是编程。VBA也是编程。 - Smandoli
3个回答

3

我今天遇到了一个类似的问题,并为PowerPoint做了一个小型的“面包屑”生成器。目前还没有链接功能,但您可以自行添加:

Github 项目

代码的关键部分

 Public Sub breadcrumbs(ByVal count As Integer, ByRef titles() As String)
    Dim cntr As Integer
    Dim content() As String
    Dim margin As Integer
    Dim width As Integer
    '----------------------------

    ' Set Titles
    content = titles
    cntr = 0
    ' Set width
    width = ((Application.ActivePresentation.PageSetup.SlideWidth - (margin * count * 2) - 20) / count) - 50

    ' Loop through all slides
    For Each sld In Application.ActivePresentation.Slides
        ' generate breadcrumb for each title
        For Each con In content
            sld.Shapes.AddShape(1, (50 + (width * cntr)), 15, width, 50).TextFrame.TextRange.Text = con
            cntr = cntr + 1
        Next con
        cntr = 0

    Next sld

End Sub

1
虽然您提供的链接可能回答了问题,但最好将解决方案的关键部分直接发布在您的 Stack Overflow 问题中,以防将来链接失效。 - Kmeixner
是的,Stack Overflow 是一个专门提供程序设计问题帮助的平台。在大多数情况下,您的答案应该包括一些描述代码范例如何解决问题的文字和代码示例。 - Kmeixner

2
听起来你想要一个“面包屑导航”来显示访问过的幻灯片,而不是简单的返回按钮。因此,你需要一种方法来保存路径。这可以通过使用动态数组来实现。新的浏览会将记录添加到数组中。通过向上或向下移动数组,可以找到“下一个”和“上一个”位置。你需要解决一些轻微的逻辑难题。我不想只给你一个通用资源,但是我没有更具体的信息,概述可能会有帮助。 更新: 我以前也想在MS Access中实现这个功能,并认为我会很容易地找到代码片段。但是现在我去搜索(认为它也可以很容易地转换),却没有找到任何东西。这令人惊讶,因为我认为它会很有趣。或者...它比我预期的更难建立。

2
在PPT中,有一种非常繁琐的方法可以直接完成此操作,无需编程。您需要“前向幻灯片”和两组“后向幻灯片”。后向幻灯片有两种类型:直接返回和主页返回。它们都可以相同,但是请将后向幻灯片隐藏起来(例如,不要使用“幻灯片3”,而需要使用“幻灯片3a”、“幻灯片3b”和“幻灯片3c”)。它们被隐藏起来,以便在正常进度中不会看到它们,但是当您链接到它们时,它们将出现。您在“a”幻灯片上的链接列表应始终指向“b”幻灯片,而“b”幻灯片将指向“c”幻灯片。您在“a”幻灯片上的“后退按钮”上的超链接应为“上一张幻灯片”,而在“c”幻灯片上应为“上次查看的幻灯片”,在“h”幻灯片上应为“第一张幻灯片”(使用“操作”设置,而不是“超链接”)。
这需要一些时间来完成,但是是可行的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接