1
私は次のコードがあります。それはExcelからデータを受け取り、それをPPTテンプレートに貼り付けます。 ご覧のとおり、現在使用しているスライドを把握するためにppSlide
を使用します。これを行うには、前にスライドを終えたときに次のスライドの番号を設定します。コピーのペーストは、pptに間違ったスライド上のデータをExcelに
しかし、コードを実行すると、2番目のファイル(3番目のスライド)に2番目のファイルが貼り付けられます。理由は何ですか?
Sub maakPPT()
Application.ScreenUpdating = False
Dim ppApp As PowerPoint.Application
Dim ppPres As PowerPoint.Presentation
Dim ppSlide As PowerPoint.Slide
Dim wsReoOverzicht As Worksheet
Dim chPlanning As Chart
Dim grafPersImp As Range
Dim wsGrafiek As Worksheet
Set wsReoOverzicht = Worksheets("Reo's gestart")
Set chPlanning = Charts("Planning")
Set wsGrafiek = Worksheets("Grafiek")
Set grafPersImp = wsGrafiek.Range("A3:N24")
'ppt openen
Set ppApp = New PowerPoint.Application
ppApp.Visible = True
ppApp.Activate
'template openen 2e slide selecteren
Set ppPres = ppApp.Presentations.Open("F:\WGD\Dep 456566-Centrale Reorganisatieteam\AAB CRT Algemeen\PMO CRT\Dashboards\ppt presentaties\Template Totaaloverzicht.pptx")
Set ppSlide = ppPres.Slides(2)
'Totaal lopende Reo's (planning)
wsReoOverzicht.ListObjects("Tabel1").Range.AutoFilter Field:=12, Criteria1:= _
"Lopend"
chPlanning.CopyPicture _
Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
ppSlide.Select
ppApp.ActiveWindow.View.Paste
ppApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
ppApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
ppSlide.Shapes(2).Width = 600
ppSlide.Shapes(2).Height = 375
ppSlide.Shapes.Range(2).Align msoAlignCenters, True
ppSlide.Shapes.Range(2).Align msoAlignMiddles, True
Set ppSlide = ppApp.ActivePresentation.Slides(3)
'Totaal personele impact (grafiek)
grafPersImp.Copy
ppApp.ActiveWindow.View.PasteSpecial DataType:=2 '2 = ppPasteEnhancedMetafile
ppApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
ppApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
ppSlide.Shapes(2).Width = 400
ppSlide.Shapes(2).Height = 275
ppSlide.Shapes.Range(2).Align msoAlignCenters, True
ppSlide.Shapes.Range(2).Align msoAlignMiddles, True
Set ppSlide = ppApp.ActivePresentation.Slides(4)
第2スライドを 'Set'の方法とは別に' Set'する理由は何ですか? – CLR
いいえ、ちょうど今自分自身を見て、 'Set ppSlide = ppApp.ActivePresentation.Slides(2)'にしました。 – MyName