2017-02-14 1 views
0

여러 Excel 차트가 링크로 붙여진 PowerPoint 프레젠테이션이 있습니다. VBA를 사용하여 확인했는데이 모양의 유형은 msoLinkedOLEObject입니다. 이를 아는Powerpoint VBA : 연결된 Excel 차트의 오픈 소스

, 내가 먼저 다음과 같이 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 

답변

2

당신은

sld.Shapes(i).OLEFormat.DoVerb 

sld.Shapes(i).OLEFormat.Activate 

또는

당신이 그것을 편집 할 수 있도록 연결된 개체가 열립니다 sld.Shapes(i).LinkFormat.Update

모두 다음에 사용할 수 있습니다. 그러나 VBA를 통해 조작 할 수있는 Excel 개체에 대한 참조가 충분하지 않습니다.

관련 문제