PowerPoint VBA用于标记对象和动态更新文本框幻灯片引用

时间:2015-05-27 18:13:45

标签: vba reference tags powerpoint powerpoint-vba

想知道是否有可以自动更新其他幻灯片上对象的幻灯片引用的宏。

例如,假设幻灯片X上有一个表格。我希望能够在幻灯片5上放置一个文本框并说“参考第X页”。

这些演示文稿是打印的,所以使用超链接是行不通的。我们不想对引用进行硬编码,因为如果我们添加/删除幻灯片,我们不希望返回并手动更新所有引用。

我的VBA知识非常有限。不知道如何“标记”一个对象然后引用它。

1 个答案:

答案 0 :(得分:0)

标记形状,假设它当前已被选中:

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