【问题标题】:PowerPoint VBA - Update linked graph from Excel at regular intervalsPowerPoint VBA - 定期从 Excel 更新链接图
【发布时间】: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


【解决方案1】:

更改底层幻灯片(即从外部 Excel 应用程序)应该会更新正在运行的节目;除非您强制重绘,否则当前放映的幻灯片通常不会显示更新,但当它再次出现在放映中时,更新应该是可见的。

总而言之,从 Excel 自动化 PPT 比让它控制事物并按需吸收更新更容易......至少它会,除非你想包含一个插件来处理 PPT 中的事件.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 2013-02-03
    • 2012-11-30
    • 1970-01-01
    相关资源
    最近更新 更多