在Powerpoint幻灯片中更新链接的Excel幻灯片

我有一个PowerPoint演示文稿,需要不断循环才能不断显示信息。 我希望在一张幻灯片中链接的Excel工作表对象每次显示幻灯片时刷新其数据,在循环演示中显示更新的数据。

我怎么去做这个?

执行更新的代码只是一行:

ActivePresentation.Slides(2).Shapes(1).LinkFormat.Update 

您可以通过索引号或名称引用SlidesShapes 。 上面的示例更新第二个Slide对象Slide一个Shape对象的链接。 你需要按照下面的步骤来使代码在适当的时候触发。

从Microsoft Office文档:

如何:使用事件与应用程序对象

要为Application对象的事件创build一个事件处理程序,您需要完成以下三个步骤:

  1. 在类模块中声明对象variables以响应事件。
  2. 编写具体的事件程序。
  3. 从另一个模块初始化声明的对象。

声明对象variables

在为Application对象的事件编写过程之前,您必须创build一个新的类模块并使用事件声明Applicationtypes的对象。 例如,假设创build了一个新的类模块并将其称为EventClassModule。 新的类模块包含以下代码。

VBA

  Public WithEvents App As Application 

编写事件程序

在用事件声明新对象后,它将出现在类模块的“对象”列表中,并且可以为新对象编写事件过程。 (在“对象”列表中select新对象时,该对象的有效事件将列在“过程”列表中。)从“过程”列表中select一个事件; 一个空的过程被添加到类模块。

VBA

 Private Sub App_SlideShowNextSlide(ByVal Wn As SlideShowWindow) ActivePresentation.Slides(2).Shapes(1).LinkFormat.Update End Sub 

初始化声明的对象

在过程运行之前,您必须将类模块中声明的对象(本例中的应用程序)与Application对象连接起来。 你可以用任何模块的下面的代码来做到这一点。

VBA

 Dim X As New EventClassModule Sub InitializeApp() Set X.App = Application End Sub 

运行InitializeApp过程。 运行该过程后,类模块中的App对象指向Microsoft Office PowerPoint应用程序对象,并在事件发生时,类模块中的事件过程将运行。