Chart/object verwijderen in actieve PPT slide en vervangen door een nieuwe [VBA]

Status
Niet open voor verdere reacties.

Djani

Gebruiker
Lid geworden
16 mrt 2016
Berichten
67
Hoi allemaal,

Ik heb een keurig werkende macro die de chart automatisch copy-paste in een bepaalde PowerPoint-slide. Is het echter mogelijk om de vorige chart in die bepaalde slide te verwijderen en vervolgens te vervangen met de nieuwe? In plaats van dat er twee grafieken op een slide komt te staan waarvan ik de oude handmatig moet verwijderen, wil ik dit graag automatisch laten gebeuren.

Dit is mijn script tot nu toe:

Code:
Sub ChartToPresentation()
         
Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim shp As String
Dim newShape As PowerPoint.ShapeRange


' Make sure a chart is selected
If ActiveChart Is Nothing Then
    MsgBox "Please select a chart and try again.", vbExclamation, _
        "No Chart Selected"
Else
    ' Reference existing instance of PowerPoint
    Set PPApp = GetObject(, "Powerpoint.Application")
    ' Reference active presentation
    Set PPPres = PPApp.ActivePresentation
    ' Reference active slide
    Set PPSlide = PPPres.Slides(4)
               
    ' Copy chart as a picture
    ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, _
        Format:=xlPicture

    ' Paste chart
    Set newShape = PPSlide.Shapes.Paste

With newShape
    .IncrementLeft 400
    .IncrementTop 250
    .ScaleWidth 0.87, msoFalse, msoScaleFromTopLeft
    .ScaleHeight 0.87, msoFalse, msoScaleFromTopLeft
End With

    ' Clean up
    Set PPSlide = Nothing
    Set PPPres = Nothing
    Set PPApp = Nothing
End If

End Sub

Mvg,

Djani
 
Ik heb een werkende script, maar ik heb geen idee hoe deze 'gelooped' moet worden. Nu moet ik een paar keer op de macro klikken voordat alle grafieken in de presentatie verwijderd zijn. Dit is de code:

Code:
Sub DeletePictures() 
    Dim objApp, objSlide, ObjShp 
    On Error Resume Next 
    Set objApp = CreateObject("PowerPoint.Application") 
    On Error GoTo 0 
    For Each objSlide In objApp.ActivePresentation.Slides 
        For Each ObjShp In objSlide.Shapes 
            If ObjShp.Type = msoPicture Then ObjShp.Delete 
        Next 
    Next 
End Sub

Is het overigens mogelijk om alleen de grafieken te verwijderen in slide 2,3,6 etc. van de PowerPoint presentatie?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan