【问题标题】:PowerPoint VBA for tagging objects and dynamically updating text box slide references用于标记对象和动态更新文本框幻灯片引用的 PowerPoint VBA
【发布时间】:2015-05-27 18:13:45
【问题描述】:
想知道是否有一个宏可以自动更新其他幻灯片上对象的幻灯片引用。
例如,假设幻灯片 X 上有一个表格。我希望能够在幻灯片 5 上放置一个文本框并说“请参阅第 X 页”。
这些演示文稿是打印出来的,因此无法使用超链接。我们不想对引用进行硬编码,因为如果我们添加/删除幻灯片,我们不想返回并手动更新所有引用。
我的 VBA 知识非常有限。不知道如何“标记”一个对象然后引用它。
【问题讨论】:
标签:
vba
reference
tags
powerpoint
【解决方案1】:
标记一个形状,假设它当前被选中:
With ActiveWindow.Selection.ShapeRange(1)
.Tags.Add "TagName", "TagValue"
End With
例如,选择表格并:
With ActiveWindow.Selection.ShapeRange(1)
.Tags.Add "ShapeTag", "Table1"
' the value above should be unique
End With
将要更新的文本与表格挂钩会有点棘手。我会通过向文本形状添加两个标签来处理它,第一个是您想要出现在文本框中的文本,但幻灯片编号作为可替换参数包含在内;下一个标签将是对相关形状的引用:
With ActiveWindow.Selection.ShapeRange(1)
.Tags.Add "Text", "Refer to page #page#"
.Tags.Add "Shape", "Table1"
End With
要更新,您将运行检查每张幻灯片上的每个形状的代码,如果该形状的 Len(.Tags("Shape")) > 0 您将调用一个查看每张幻灯片/每个形状的函数,并且返回找到标记为“Table1”的形状的幻灯片编号。
然后,您可以用幻灯片编号代替 .Text 标记中的 #page#,并将其应用为形状的 .TextFrame.TextRange.Text