& 간 게시에서 업데이트 : http://www.ozgrid.com/forum/showthread.php?t=203827실행 엑셀 파워 포인트 링크 된 차트를 업데이트하는 매크로 (통합 문서 이미 열기)
내 목표 파워 포인트 내에서 엑셀 매크로를 실행하는 것입니다. [모든 매크로는 Excel에서 데이터 범위에 대한 행 필터링을 변경하여 차트에 표시된 선을 변경합니다.]
그래서 내 PPT 매크로는 (1) 차트를 변경하는 Excel 매크로를 실행 한 다음 (2) Excel 차트에 연결된 PPT에서 해당 차트를 업데이트해야합니다.
Sub Test()
Excel.Application.Run "'" & "C:\myPath\" & "PPT Macro Test.xlsm'!Steps"
ActivePresentation.UpdateLinks
End Sub
그것은 Excel에서 차트를 업데이트합니다 "단계"매크로를 실행하지만, PPT 차트를 업데이트하지 않습니다 :
는 여기에 내가 무엇을 시도했다입니다.
그래서이 게시물에서 기술을 적용했습니다 : How to update excel embedded charts in powerpoint? (모자 팁 brettdj). 희망으로
Sub Test()
Excel.Application.Run "'" & "C:\myPath\" & "PPT Macro Test.xlsm'!Steps"
ChangeChartData
End Sub
Sub ChangeChartData()
Dim pptChart As Chart
Dim pptChartData As ChartData
Dim pptWorkbook As Object
Dim sld As Slide
Dim shp As Shape
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
If shp.HasChart Then
Set pptChart = shp.Chart
Set pptChartData = pptChart.ChartData
pptChartData.Activate
Set pptWorkbook = pptChartData.Workbook
On Error Resume Next
'update first link
pptWorkbook.UpdateLink pptWorkbook.LinkSources(1)
On Error GoTo 0
pptWorkbook.Close True
End If
Next
Next
Set pptWorkbook = Nothing
Set pptChartData = Nothing
Set pptChart = Nothing
End Sub
는 지금은 작동하지만,이 열립니다 동안 일시 정지, & 통합 문서를 닫고 저장합니다. 상당히 큰 파일이므로 프레젠테이션 중에 받아 들일 수없는 지연입니다. 다시 열지 않고 닫는 것없이 이미 "배후에서"열리는 Excel 통합 문서에서 매크로를 실행하는 방법이 있습니까?
미리 감사드립니다.
이 코드에서 * Excel 파일을 열 수있는 내용이 보이지 않습니다. 연결된 차트 개체는 특히 PPT가 프레젠테이션 모드에있는 동안 실시간으로 데이터를 업데이트하려고 할 때 악명이 높습니다. 또한 PPT 프레젠테이션의 모든 * 차트에 왜 반복하고 있습니까? 업데이트가 필요한 차트/슬라이드가 하나뿐이라면 각 슬라이드 및 각 모양/차트를 반복하는 것이 최적이 아닙니다. –
@David Zens (1) 예, 통합 문서를 열 때까지 단계별로 진행해야합니다. "pptChartData.Activate". 나도 놀랐다. (2) 나는 모든 차트를 반복 할 필요가 없다. (그리고 나중에 수정하기를 의도했다.) 처음에는 brettdj의 접근법을 사용하여 여러 것을 한꺼번에 변경하지 않았다. – Keifffer
PPT 명령 단추를 사용하여 광산을 테스트했으며 예상대로 작동했습니다. 원한다면 Google 드라이브에 샘플 파일을 저장하고 나와 공유하여 작업 방식을 보여줄 수 있습니다. 저에게 알려주세요. –