2016-07-22 6 views
0

Ich habe eine Makros, die leider alle gruppierten Formen in PowerPoint überspringt, wo der Text normalisiert werden muss (harte Returns mit Leerzeichen ersetzt). Jetzt schrieb ich ein "Prepping" -Skript, das alle Formen mit Text finden und die Gruppierung aufheben sollte. Aus irgendeinem Grund funktioniert es nicht. Das sollte so einfach sein, aber ich kann es nicht zur Arbeit bringen. Bitte helfen Sie!VBA zum Auflösen aller PowerPoint-Formen in allen Folien

Sub Ungroupallshapes() 
    Dim osld As Slide 
    Dim oshp As Shape 
    For Each osld In ActivePresentation.Slides 
     For Each oshp In osld.Shapes 
      If oshp.Type = msoGroup Then 
       If oshp.HasTextFrame Then 
        If oshp.TextFrame.HasText Then oshp.Ungroup 
        End If 
       End If 
     Next oshp 
    Next osld 
End Sub 

Vielen Dank!

Antwort

0

Gruppen haben keine TextFrames, also testen Sie auf etwas, das nie passieren wird.

If oshp.Type = msoGroup then oshp.Ungroup 

sollte es für einfache Gruppierungen tun. Das Aufheben der Gruppierung kann jedoch unerwünschte Nebenwirkungen haben (z. B. wenn Animationen in der Gruppenform entfernt werden). Und es ist normalerweise nicht notwendig. Bedenken Sie:

Sub ChangeTheText() 

    Dim oshp As Shape 
    Dim oSld As Slide 
    Dim x As Long 

    For Each oSld In ActivePresentation.Slides 
     For Each oshp In oSld.Shapes 
      If oshp.HasTextFrame Then 
       oshp.TextFrame.TextRange.Text = "Ha! Found you!" 
      Else 
       If oshp.Type = msoGroup Then 
        For x = 1 To oshp.GroupItems.Count 
         If oshp.GroupItems(x).HasTextFrame Then 
          oshp.GroupItems(x).TextFrame.TextRange.Text _ 
           = "And you too, you slippery little devil!" 
         End If 
        Next 
       End If 
      End If 
     Next 
    Next 
End Sub 

, dass Sie noch Blätter mit den möglichen Problemen von Gruppen innerhalb von Gruppen (innerhalb von Gruppen (in Gruppen)) etc. Es gibt Möglichkeiten, um das, aber wenn es nicht kaputt ist, brauchen wir nicht etwas reparieren.

Verwandte Themen