Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
This is wierd!
Greetings
I am using Excel 2003 - I don't know how this would work in other versions. Open up a new workbook and put 2 shapes (I used ovals) on the sheet. Then group them. In a code module add: Sub disappointing() Dim myName As String Dim shp As Shape myName = Sheets(1).Shapes("Group 3").GroupItems(1).name MsgBox myName Set shp = Sheets(1).Shapes("Group 3").GroupItems(myName) MsgBox shp.name End Sub The first msgbox gives "Oval 1" as expected but the next line throws a run-time "subscript out of range" error. GroupItems is expecting an integer and can't handle a string like a full-fledged collection (such as Shapes itself) could do - disappointing design if you ask me. *But* I you now enter: Sub wierd() Dim shp As Shape For Each shp In Sheets(1).Shapes("Group 3").GroupItems shp.Select Selection.name = shp.name Next shp End Sub And run it and *then* run disappointing () - you discover that the subscript error has vanished and that both msgboxes work as hoped. What is going on here? It seems that going through Selection is needed - it somehow makes the shape names magic or something so that they cause GroupItems, against all documentation, to start acting like a collection. -semiopen |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Wierd Data sorting | Excel Worksheet Functions | |||
Totally wierd | Excel Worksheet Functions | |||
Wierd VBA happenings... | Excel Discussion (Misc queries) | |||
Wierd event | Excel Discussion (Misc queries) | |||
Wierd XL Behavior | Excel Discussion (Misc queries) |