2011-05-11 154 views
3

我試圖建立這個系統,我有這個PowerPoint演示文稿與外部Excel文件中的鏈接圖。我已經看到,我可以在PowerPoint中右鍵單擊該圖並單擊「更新鏈接」,圖形會自動更新。PowerPoint VBA - 定期更新Excel的鏈接圖

但是如果我想要這種自動化?如果這可以在不創建本來很棒的插件的情況下完成。那麼在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 

這顯然是一個開始。我需要弄清楚是否可以在幻燈片顯示時完成。但我認爲這應該是可能的。當我設法得到值得一提的東西時將更新:)

+0

另一種看待此問題的方式是以相反的方式 - 使用[Application.OnTime](http://msdn.microsoft.com/zh-cn/library/bb221399.aspx)自動化Excel以創建新的或按計劃的時間間隔更新PowerPoint圖表版本。 – 2011-05-11 15:12:42

+0

好的,但PowerPoint圖表如何更新?如果演示文稿已經在運行並顯示在辦公室周圍的老闆電視上? – 2011-05-12 05:55:57

+1

哦,這是一個不同的場景。我還沒有處理更新運行幻燈片之前 - 我不知道是否可以完成。我會研究它。 – 2011-05-12 07:10:42

回答

0

更改底層幻燈片(即從外部Excel應用程序)應更新正在運行的節目;正在運行的節目中的當前幻燈片通常不會顯示更新,除非您強制重繪,但當它再次出現在節目中時,更新應該可見。

總而言之,從Excel自動化PPT比讓它控制事物並按需吸取更新更容易......至少它會除非你想包含一個加載項來處理事件PPT。