Powerpoint VBA:链接Excel图表的开源

时间:2017-02-14 19:19:17

标签: vba excel-vba powerpoint powerpoint-vba excel

我有一个PowerPoint演示文稿,其中几个Excel图表粘贴为链接。使用VBA,我已经检查过,这些形状的类型是msoLinkedOLEObject

知道了这一点,我想先通过VBA打开包含原始图表的Excel文件,然后使用"更新链接"图表的命令,如下:

enter image description here

我希望首先打开工作簿,因为使用"更新链接"使用打开的Excel文件的命令对我来说通常比​​使用"更新链接"更快。直接命令(也许是因为一些PowerPoint演示文稿和一些工作簿真的很乱)。

对于代码的sld.Shapes(i).LinkFormat部分,我可以使用.UpdateLinks直接刷新数据,但我找不到任何方法直接打开Excel源文件(以同样的方式我可以通过手动点击链接图表。)

这可以实现吗?

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

1 个答案:

答案 0 :(得分:2)

您可以使用

sld.Shapes(i).OLEFormat.Activate

或者

sld.Shapes(i).OLEFormat.DoVerb

后跟sld.Shapes(i).LinkFormat.Update

两者都将打开链接对象,以便您可以对其进行编辑。但请注意,这还不足以引用可以通过VBA操作的Excel对象。