0
Excel에서 매크로 (VBA)를 사용하여 모든 시트의 Excel 파일에서 PowerPoint 파일로 모든 차트와 테이블을 복사하려면 코드 조각이 필요합니다.모든 Excel 시트의 모든 테이블과 차트를 PowerPoint로 복사
아래 코드는 차트 만 복사합니다. 모든 테이블과 차트 및 이미지를 복사하고 싶습니다. 사진을
Sub PushChartsToPPT()
'Set reference to 'Microsoft PowerPoint 12.0 Object Library'
'in the VBE via Tools > References...
'
Dim ppt As PowerPoint.Application
Dim pptPres As PowerPoint.Presentation
Dim pptSld As PowerPoint.Slide
Dim pptCL As PowerPoint.CustomLayout
Dim pptShp As PowerPoint.Shape
Dim cht As Chart
Dim ws As Worksheet
Dim i As Long
'Get the PowerPoint Application object:
Set ppt = CreateObject("PowerPoint.Application")
ppt.Visible = msoTrue
Set pptPres = ppt.Presentations.Add
'Get a Custom Layout:
For Each pptCL In pptPres.SlideMaster.CustomLayouts
If pptCL.Name = "Title and Content" Then Exit For
Next pptCL
'Copy ALL charts in Chart Sheets:
For Each cht In ActiveWorkbook.Charts
Set pptSld = pptPres.Slides.AddSlide(pptPres.Slides.Count + 1, pptCL)
pptSld.Select
For Each pptShp In pptSld.Shapes.Placeholders
If pptShp.PlaceholderFormat.Type = ppPlaceholderObject Then Exit For
Next pptShp
If pptShp Is Nothing Then Stop
cht.ChartArea.Copy
ppt.Activate
pptShp.Select
ppt.Windows(1).View.Paste
Next cht
'Copy ALL charts embedded in EACH WorkSheet:
For Each ws In ActiveWorkbook.Worksheets
For i = 1 To ws.ChartObjects.Count
Set pptSld = pptPres.Slides.AddSlide(pptPres.Slides.Count + 1, pptCL)
pptSld.Select
For Each pptShp In pptSld.Shapes.Placeholders
If pptShp.PlaceholderFormat.Type = ppPlaceholderObject Then Exit For
Next pptShp
Set cht = ws.ChartObjects(i).Chart
cht.ChartArea.Copy
ppt.Activate
pptShp.Select
ppt.Windows(1).View.Paste
Next i
Next ws
End Sub
Thnx @D_Bester에서 모양을 사용해보십시오 :)하지만 난 새로운 파워 포인트 파일이 차트와 그림을 이동 열립니다마다 참조하십시오. 나는 1 엑셀 소스 파일과 대상 파일 (파워 포인트 파일)을 가지고 어떤 생각을 어떻게 단일 ppt 파일에 저장할 수 있습니까? – Shilpa
pptPres.saveas ("C : \ temp \ MyPresentation.pptx") 경로와 접미사 "pptx"를 확인해야합니다 –
PPT 충돌이 발생하는 이유는 아무도 도와 줄 수 없습니까? – maximladus