View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Selecting most of very many programmatically

Sub SelectSubset()
Dim v() As Variant
v = Array("Rectangle 2", "Oval 5")
ActiveSheet.Shapes.Range(v).Select
End Sub

worked for me. The declaration

Dim v() as Variant

was important.

this also worked:

Sub SelectSubset()
Dim v() As Variant
ReDim v(0 To 1)
v(0) = "Rectangle 2"
v(1) = "Oval 5"
ActiveSheet.Shapes.Range(v).Select
End Sub

--
Regards,
Tom Ogilvy


"Tony Rizzo" wrote in message
...
I've been struggling with this for days, and this group is my last hope.

I need to select a large subset of autoshapes from a larger set of the
autoshapes in a worksheet. I tried recording a macro, to see how
the selection process gets coded by Excel. But the business end
of the macro is:

ActiveSheets.Shapes.Range(Array(...)).select

where ... is a list of variants containing the name-property values of the
autoshapes, separated by commas.

I can fill an array of variants with the name-property values of interest.
But for the life of me I can't get the array of variants into the argument
field of the Array function.

Is there some simple way of selecting many shapes from a larger set of
shapes and doing so programmatically? I just don't have much hair
left that I can pull out any more.

Tony Rizzo