PowerPoint加载项直接访问其对象

时间:2014-02-06 15:37:17

标签: vba c#-4.0 powerpoint add-in powerpoint-vba

Powerpoint文件实际上是一个包含xml子文件的zip文件。这些子文件说明了每个幻灯片的对象的所有属性(例如,位置,颜色,动画等)。您可以将pptx文件转换为zip文件并解压缩,您将看到子xml文件。

现在,我想创建一个Powerpoint Add-in应用程序,允许我向特定对象添加更多信息,并将其动态存储在自身的XML文件中(或将文件保存为)。例如,我的加载项PowerPoint应用程序包含一个名为“Flippable”的按钮。当我选择幻灯片的特定对象并选择“Flippable”时,我的应用程序将找到包含对象信息的xml文件,并添加标签“Flippable = true”。

运行应用程序时是否可以动态执行此操作? 谢谢

1 个答案:

答案 0 :(得分:1)

为什么要开始破解和解析XML文件的所有工作,假设你的演示文稿在PPT中打开时你甚至可以 ,特别是因为你已经从加载项开始这样做了?

您提到用户已选择了一个形状。为什么不标记形状:

With ActiveWindow.Selection.ShapeRange(1)
  .Tags.Add "Flippable", "Yes"
End With

你需要更多的代码来确保有一个选择,如果你想允许一次标记多个形状,你需要放入For Each / Next循环。

然后假设在oSh

中引用当前要测试的形状
If oSh.Tags("Flippable")="Yes" Then
   ' Do your stuff
End If