ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Select Multiple Shape Objects (https://www.excelbanter.com/excel-programming/317673-re-select-multiple-shape-objects.html)

Alan

Select Multiple Shape Objects
 
Thanks for the quick response.

After a few experiments it works.

I removed "As String" from my array declaration.

I removed my "Redim" statements before and after the loop and replaced them
with a single "Redim" statement inside the loop.

I'm a little confused why this was causing a problem.

Thanks for the help.



"Doug Glancy" wrote:

Alan,

This works for me:

Sub test()

Dim shapeobject As Shape
Dim i As Long
Dim ShapeObjectNameArray()

i = 0
For Each shapeobject In Worksheets(1).Shapes
If Left(shapeobject.Name, 6) = "MyName" Then
ReDim Preserve ShapeObjectNameArray(i)
ShapeObjectNameArray(i) = shapeobject.Name
i = i + 1
End If
Next shapeobject
Worksheets(1).Shapes.Range(ShapeObjectNameArray).S elect

End Sub

hth,

Doug Glancy
"Alan" wrote in message
...
How do I select multiple Shape Objects?

I have many shape objects on a worksheet and would like to select a subset
of them based on their name, ie select all Shape Objects whose name begins
with "MyName". I can then group and move them in single operation.

I have the following:

Dim ShapeObjectNameArray() as string

i = 0
for each shapeobject in Worksheet(1).Shapes
if Left(shapeobject.Name, 6) = "MyName" then
ShapeObjectNameArray(i) = shapeobject.Name
i = i + 1
end if
next shapeobject

Redim Preserve ShapeObjectNameArray(i)

Worksheet(1).Shapes.Range(ShapeObjectNameArray).Se lect

There is a runtime error stating a parameter has an invalid value. Appears
the Range(ShapeObjectNameArray) is unacceptable. The following works but
does not select all the desired shapes:

Worksheet(1).Shapes.Range(Array(ShapeObjectNameArr ay(1),
ShapeObjectNameArray(2))).Select

I've tried creating arrays and collections of the desired shape object

names
and shape objects, then use these as an argument for "Range". They all

fail.

Any suggestions?

As a less desirable alternative, I'm willing to select each shape object
individually as i loop thru the shapes. Is there a way to select one

object,
then another, then another, etc? Every time I Select an object, the

previous
selection is lost. I haven't found an "AddToSelection" or similar method.

thanks.







All times are GMT +1. The time now is 06:30 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com