1

我有一份在 PowerPoint 中生成的报告,在许多图表下方,有文字告诉读者参考附录中的页面。我希望能够动态引用这些幻灯片。

例如,在图表下我可能有文本“请参阅第 54 页附录”,但我需要将 54 链接到幻灯片,这样如果我插入另一张幻灯片,它将显示 55。

这可以在VBA中做到吗?我不希望有人为我编写代码,我只是想在我花费数小时尝试这样做之前知道这是否合理。

旁注:我觉得在这里问一个关于 MS Office 的问题很可怕,但是因为我相信它需要在 VBA 中实现(我不认为这个功能是默认内置的)我认为这是一个相关的问题。

4

1 回答 1

4

在这里问这个没必要感到可怕。

如何做到这一点:

在 PPT 中,形状、幻灯片甚至演示文稿本身都可以有关联的标签集合;命名字符串值。例如,假设在 oSh 中引用了形状,您可以执行以下操作:

oSh.Tags.Add "AssociatedSlideId", "293"

在这种情况下,您可以将此标签应用于您的图表;293 将是您要引用的幻灯片的 SlideID。每张幻灯片在创建时都有一个唯一的 SlideID;当您移动幻灯片/添加/删除幻灯片时,SlideID 不会改变。

要从形状中读取标签:

Debug.Print oSh.Tags("AssociatedSlideId")

在这种情况下,这将返回“293”。将其提供给 FindBySlideID 以获取幻灯片的 SlideIndex(即幻灯片在演示文稿中的序号位置)。或者,如果您想要将出现在数字占位符中的幻灯片编号(通常,但并不总是与幻灯片索引相同),请询问 SlideNumber。

Debug.Print ActivePresentation.Slides.FindBySlideID(clng("293")).SlideIndex

您还可以标记要用于保存引用的文本框或其他形状,然后按照以下方式编写函数:

Function ShapeTaggedWith(oSl as Slide, sTagName as String, sTagValue as String) as Shape

这将遍历幻灯片 oSl 上的形状,寻找带有名为 sTagName, value = sTagValue 的标签的形状,如果找到,则将其返回给调用者。

现在,您可以找到指定为图表标题的形状,让我们调用它,并更改其文本以匹配图表应该引用的幻灯片的 SlideIndex(或 SlideNumber)。

希望这一切都还算清楚;如果没有,这就是 StackOverflow 大神给我们评论的原因。

于 2013-03-05T01:39:09.057 回答