Hallo zusammen,
ich möchte gerne mehrere Grafiken mit VBA von Excel nach PowerPoint schicken, und zwar möglichst so, dass dabei der Platz des Placeholders komplett genutzt wird und die Grafik auch in starker Vergrößerung scharf aussieht.
Ich habe mir einen Ast daran abgebrochen irgendwie da mit der .paste Funktion zu Rande zu kommen, aber leider ohne Erfolg. Untriges zeigt die simpelste Variante, die aber die Grafik mit ihrer Mitte auf die obige, linke Bildschirmecke setzt. Ich weiss wie man sie da nachher wieder herunter bekommt, aber ich möchte den Placeholder benutzen, weil ich flexibel auf verschiedene Templates reagieren möchte.
Außerdem soll das Gesamtbild harmonisch sein, und die Grafik nicht nur "ungefähr mittig" sein.
Vielen Dank im Voraus!
ich möchte gerne mehrere Grafiken mit VBA von Excel nach PowerPoint schicken, und zwar möglichst so, dass dabei der Platz des Placeholders komplett genutzt wird und die Grafik auch in starker Vergrößerung scharf aussieht.
Ich habe mir einen Ast daran abgebrochen irgendwie da mit der .paste Funktion zu Rande zu kommen, aber leider ohne Erfolg. Untriges zeigt die simpelste Variante, die aber die Grafik mit ihrer Mitte auf die obige, linke Bildschirmecke setzt. Ich weiss wie man sie da nachher wieder herunter bekommt, aber ich möchte den Placeholder benutzen, weil ich flexibel auf verschiedene Templates reagieren möchte.
Außerdem soll das Gesamtbild harmonisch sein, und die Grafik nicht nur "ungefähr mittig" sein.
Vielen Dank im Voraus!
Visual Basic-Quellcode
- Sub CreateNewPowerPointPresentation()
- Dim pptApp As PowerPoint.Application
- Dim pptPres As PowerPoint.Presentation
- Dim pptSlide As PowerPoint.Slide
- Dim intSlideNbr%
- Dim intSheetNbr%
- On Error GoTo 0
- 'Create Powerpoint Presentation and open Powerpoint
- Set pptApp = CreateObject("PowerPoint.Application")
- pptApp.Visible = msoTrue
- Set pptPres = pptApp.Presentations.Add(WithWindow:=msoTrue)
- 'Create Cover Slide
- Set pptSlide = pptPres.Slides.Add(Index:=1, Layout:=ppLayoutTitle)
- pptSlide.Shapes(1).TextFrame.TextRange.Text = "Project Name"
- pptSlide.Shapes(2).TextFrame.TextRange.Text = Format(Date, "dddddd")
- 'Create Slides with Title and the one Chart that'S on the sheet
- intSlideNbr = 2
- For intSheetNbr = 1 To ThisWorkbook.Worksheets.Count
- Set pptSlide = pptPres.Slides.Add(Index:=intSlideNbr, Layout:=ppLayoutObject)
- Sheets(intSheetNbr).ChartObjects(1).CopyPicture
- pptSlide.Shapes(1).TextFrame.TextRange.Text = ThisWorkbook.Sheets(intSheetNbr).Name
- pptSlide.Shapes.Paste
- intSlideNbr = intSlideNbr + 1
- Next intSheetNbr
- pptPres.SaveAs "D:\Presentation", ppSaveAsShow
- 'Exit
- ExitPpt:
- Application.CutCopyMode = False
- Set pptApp = Nothing
- Set pptPres = Nothing
- Set pptSlide = Nothing
- End Sub