
Signature
--
Steve Rindsberg, PPT MVP
PPT FAQ: www.pptfaq.com
PPTools: www.pptools.com
Steve,
Vindy's code below helped me crack the nut for Group types 8 and 13 and
appears to handle part of the issue with shape type (14, Diagram 4).
However, with the Diagram shape, although that code did allow me to delve
into the diagram, it did not identify the types of shapes that were embedded
in the diagram, and when I went into PPT and clicked on the diagram, there
did not appear to be a way to ungroup the shapes that make it up, to give me
access to the individual shapes.
I would be interested in knowing how to do this, as well as how to ungroup
embedded OLE Objects.
Once ungrouped, I can always close the presentation without saving the
changes, but I need to be able to diassemble the entire presentation so that
I can look at each of it's component parts.
Thanks for your help
Dale
>> Will this work for all types of shapes that have other shapes imbedded
>> within them, or only "Groups"?
[quoted text clipped - 36 lines]
> PPTools: www.pptools.com
> ================================================
Steve Rindsberg - 25 Mar 2008 03:46 GMT
> However, with the Diagram shape, although that code did allow me to delve
> into the diagram, it did not identify the types of shapes that were embedded
> in the diagram, and when I went into PPT and clicked on the diagram, there
> did not appear to be a way to ungroup the shapes that make it up, to give me
> access to the individual shapes.
This should do it, I think:
Dim oSh As Shape
Dim x As Long
' for demo purposes, assume you've selected a diagram
Set oSh = ActiveWindow.Selection.ShapeRange(1)
With oSh
For x = 1 To .GroupItems.Count
Debug.Print .GroupItems(x).Name
' deal with other properties here
Next
End With
> I would be interested in knowing how to do this, as well as how to ungroup
> embedded OLE Objects.
And something like his for the latter. The odd loop is because some object
when ungrouped turn into a PPT group.
Sub UngroupOLEObject()
Dim oSh As Shape
Dim oShapeRange As ShapeRange
Dim x As Long
' assume you've selected an ole embedded or linked object
Set oSh = ActiveWindow.Selection.ShapeRange(1)
Set oShapeRange = oSh.Ungroup
Do Until oShapeRange.Count > 1
Set oShapeRange = oShapeRange.Ungroup
Loop
With oShapeRange
For x = 1 To .Count
Debug.Print .Item(x).Name
Next
End With
End Sub
> Once ungrouped, I can always close the presentation without saving the
> changes, but I need to be able to diassemble the entire presentation so that
[quoted text clipped - 44 lines]
> > PPTools: www.pptools.com
> > ================================================

Signature
--
Steve Rindsberg, PPT MVP
PPT FAQ: www.pptfaq.com
PPTools: www.pptools.com
================================================