Excel 차트의 OLEFormat.Object
이 포함 된 Powerpoint 2010 프레젠테이션에 문제가 있습니다. "(이전)"라는 단어로 이름이 변경되었습니다Powerpoint 2010의 차트 뒤집기 데이터가 VBA를 통해 업데이트되지 않습니다
- 원래 : -
내가 엑셀에서 데이터를 사용하여 차트를 업데이트하고 여러 단계에서 저장 아이디어는 내가 세 프레 젠 테이션으로 끝날 것입니다 파일 이름에 추가됩니다.
- 새 데이터가 포함 된 원본 파일의 새 버전 - 다음 달 템플릿입니다.
- 새 데이터가 포함 된 새 파일 - 이메일로 보내지는 보고서 버전입니다.
문제는 차트가 업데이트 된 데이터를 유지하지 않는 것입니다. 차트에 새 데이터가 표시되지만 차트를 편집하자 마자 뒤집어 원래 데이터 만 표시합니다. 워크 시트에 업데이트 된 데이터가 없습니다.
아래 이미지는 동일한 차트이지만 차트를 편집하면 마지막 시리즈가 12 월에서 6 월로 바뀝니다.
- 새 폴더를 만들고 거기에 새로운 빈 프레젠테이션 장소 : 문제를 재현합니다.
- 첫 번째 슬라이드에서
Click to add title
및click to add subtitle
개체를 삭제하십시오. Insert
리본에서Insert Object
대화 상자에서Object
및Insert Excel Chart
을 선택하십시오.
차트는Object 3
(처음 두 개체를 삭제함)이며 임의의 6 개월 데이터가 포함되어 있습니다.- 프레젠테이션이
Presentation 1.pptx
으로 저장되었는지 확인하십시오. - 동일한 폴더에서 새 Excel 2010 통합 문서를 만듭니다. 확실히 차트 후에 저장 프레젠테이션의 두 가지 버전이에 대한 데이터를 표시해야합니다 업데이트되었습니다
Option Explicit Public Sub Produce_Report() Dim sTemplate As String 'Path to PPTX Template. Dim oPPT As Object 'Reference to PPT application. Dim oPresentation As Object 'Reference to opened presentation. sTemplate = ThisWorkbook.Path & "\Presentation1.pptx" 'Open the Powerpoint template and save a copy so we can roll back. Set oPPT = CreatePPT Set oPresentation = oPPT.Presentations.Open(sTemplate) 'Save a copy of the template - allows a rollback. oPresentation.SaveCopyAs _ Left(oPresentation.FullName, InStrRev(oPresentation.FullName, ".") - 1) & " (Previous)" 'Update the chart. Audit_Volumes oPresentation.slides(1) 'Save the presentation using the current name. oPresentation.Save 'Save the presentation giving it a new report name. oPresentation.SaveAs ThisWorkbook.Path & "\New Presentation" End Sub Private Sub Audit_Volumes(oSlide As Object) Dim wrkSht As Worksheet Dim wrkCht As Chart With oSlide With .Shapes("Object 3") Set wrkSht = .OLEFormat.Object.Worksheets(1) Set wrkCht = .OLEFormat.Object.Charts(1) End With With wrkSht .Range("A3:D7").Copy Destination:=.Range("A2") .Range("A7:D7") = Array("December", 3, 4, 5) End With RefreshThumbnail .Parent End With Set wrkSht = Nothing Set wrkCht = Nothing End Sub Public Sub RefreshThumbnail(PPT As Object) With PPT .designs(1).slidemaster.Shapes(1).Left = .designs(1).slidemaster.Shapes(1).Left + 1 .designs(1).slidemaster.Shapes(1).Left = .designs(1).slidemaster.Shapes(1).Left - 1 End With End Sub Public Function CreatePPT(Optional bVisible As Boolean = True) As Object Dim oTmpPPT As Object '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Defer error trapping in case Powerpoint is not running. ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' On Error Resume Next Set oTmpPPT = GetObject(, "Powerpoint.Application") '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'If an error occurs then create an instance of Powerpoint. ' 'Reinstate error handling. ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' If Err.Number <> 0 Then Err.Clear Set oTmpPPT = CreateObject("Powerpoint.Application") End If oTmpPPT.Visible = bVisible Set CreatePPT = oTmpPPT On Error GoTo 0 End Function
:
Produce_Report
절차를 통합 문서 내에서 모듈에 다음 VBA 코드를 추가하고 실행 업데이트 된 차트?