【发布时间】:2011-08-23 07:35:54
【问题描述】:
我正在尝试构建这个系统,在这个系统中我有这个 PowerPoint 演示文稿,其中包含来自外部 Excel 文件的链接图。我已经看到我可以在 PowerPoint 中右键单击此图表,然后单击“更新链接”,图表会自动更新。
但是如果我想要这个自动化呢?如果这可以在不创建加载项的情况下完成,那就太好了。那么 PowerPoint 中有哪些事件处理程序?我认为有 SlideChanged 的事件或其他什么?我可以让演示文稿无限循环并在每个新的滑动开关处更新链接吗?可能有大量的图表。每个图表部分一张幻灯片。
或者,还有什么好主意? 我正在尝试构建的系统基本上是一个框架,用于收集数据并以可能需要的任何形式显示它。数据自动从经济软件导入数据库。所以我创建了一个命令行应用程序,它基本上打开一个 Excel 文件并运行一个宏(收集新数据并将其复制到工作表中)。此命令行应用程序设置为通过计划任务在特定时间运行。我想从这些数据中自动显示图表。
实际上我自己做了很多:)
这是 VB.NET 应用程序的代码(可用作命令行应用程序)
Imports Microsoft.Office.Interop
Public Class Form1
Dim oPPTApp
Sub updatePPTGraph()
For Each oSlide In oPPTApp.ActivePresentation.Slides
For Each oShape In oSlide.shapes
If oShape.Type = 10 Then
oShape.LinkFormat.Update()
End If
Next
Next
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
oPPTApp = New PowerPoint.Application
oPPTApp.visible = True
Dim oPresentation As PowerPoint.Presentation
oPresentation = oPPTApp.Presentations.Open("C:\Users\kenny\Documents\Charttest.pptx")
updatePPTGraph()
End Sub
End Class
这显然是一个开始。我需要弄清楚它是否可以在幻灯片放映时完成。但我认为这应该是可能的。当我设法得到值得一提的东西时会更新:)
【问题讨论】:
-
另一种看待这个问题的方法是采取相反的方式 - 使用 Application.OnTime 自动化 Excel 以按预定时间间隔创建新版本或刷新版本的 PowerPoint 图表。
-
好的,但是如何更新 PowerPoint 图表?如果演示文稿已经在老板办公室周围的电视上运行并显示?
-
哦,那是另一种情况。我之前没有处理过更新正在运行的幻灯片放映 - 我不确定是否可以完成。我会调查的。
-
您之前帮助我创建了一个我相信的 PowerPoint 启动加载项。也许可以使用它,然后创建某种计时器?
-
难道不能创建一个基本上启动演示文稿并通过该代码进行更新的 Visual Studio 应用程序吗? Visual Studio 中有计时器 :)
标签: excel vba powerpoint