2017-02-14 5 views
0

Ich habe eine PowerPoint-Präsentation mit mehreren Excel-Charts als Links eingefügt. Mit VBA habe ich überprüft, und der Typ dieser Formen ist msoLinkedOLEObject.Powerpoint VBA: Open Source von verknüpften Excel-Diagramm

Mit diesem Wissen, würde Ich mag zunächst die Excel-Datei öffnen, die die ursprüngliche Grafik durch VBA enthält und dann mit dem „Update-Link“ Befehl des Diagramms, wie folgt aus:

enter image description here

Ich wünsche um die Arbeitsmappen zuerst zu öffnen, da die Verwendung des "update link" -Befehls mit einer geöffneten Excel-Datei für mich normalerweise schneller ist, als den Befehl "update link" direkt zu verwenden (vielleicht, weil einige PowerPoint-Präsentationen und einige Arbeitsmappen wirklich extensiv sind).

Für den sld.Shapes(i).LinkFormat Teil des Codes kann ich .UpdateLinks verwenden, um die Daten direkt zu aktualisieren, aber ich kann keine Möglichkeit zum direkten Öffnen der Excel-Quelldatei finden (auf die gleiche Weise kann ich manuell auf das verknüpfte Diagramm klicken).

Konnte das erreicht werden?

Sub UpdateExcelLinkedCharts() 
Dim pres As Presentation 
Dim sld As Slide 
Dim shp As Shape 

Set pres = Application.ActivePresentation 

'Loop through all active slides in the presentation 
For Each sld In pres.Slides 
If sld.SlideShowTransition.Hidden = msoFalse Then 

'If the slide is a msoLinkedOLEObject, proceed to update its link 
For i = 1 To sld.Shapes.Count 

If sld.Shapes(i).Type = 10 Then 
sld.Shapes(i).LinkFormat.UpdateLinks 

End If 

Next i 

End If 

Next sld 


MsgBox ("All Links Updated!") 
End Sub 

Antwort

2

Sie können entweder

sld.Shapes(i).OLEFormat.Activate 

Oder

sld.Shapes(i).OLEFormat.DoVerb 

von sld.Shapes(i).LinkFormat.Update gefolgt verwenden

werden beide das verknüpfte Objekt öffnen, so dass Sie es bearbeiten können. Beachten Sie jedoch, dass dies nicht ausreicht, um einen Verweis auf ein Excel-Objekt zu haben, das Sie über VBA bearbeiten können.