Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
My routine to create an object of multiple shapes fails if any shape name
includes punctuation, eg "My.Rectangle 1" Sub TestMultiObject() Dim cnt As Long, i as Long Dim ob As Object With ActiveSheet.Shapes cnt = .Count ReDim vArr(1 To cnt) For i = 1 To cnt 'don't want to use "For Each" vArr(i) = .Item(i).Name Next End With 'fails if any shape Name includes a dot Set ob = ActiveSheet.DrawingObjects(vArr) 'always works 'Set ob = ActiveSheet.Shapes.Range(vArr) MsgBox ob.Count End Sub I don't know why I have this problem with punctuation in shape names. First question - does anyone else have same problem, or rather not replicate this problem. I have a convoluted reason for not wanting to use the line that "always works". Assuming this affects all users/versions, does anyone know how to create a multiple object at the "DrawingObjects" level that caters for the possibility of a name including punctuation. TIA, Peter T |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have used shapes with names containing punctuation, but never access them
by name in an array. Try accessing by index instead. Try this: With ActiveSheet.Shapes cnt = .Count ReDim vArr(1 To cnt) For i = 1 To cnt 'don't want to use "For Each" 'vArr(i) = .Item(i).Name vArr(i) = i ' Changes to use index instead of name. Next End With 'fails if any shape Name includes a dot Set ob = ActiveSheet.DrawingObjects(vArr) Carlos Lozano CAX IT Services www.caxonline.net "Peter T" wrote: My routine to create an object of multiple shapes fails if any shape name includes punctuation, eg "My.Rectangle 1" Sub TestMultiObject() Dim cnt As Long, i as Long Dim ob As Object With ActiveSheet.Shapes cnt = .Count ReDim vArr(1 To cnt) For i = 1 To cnt 'don't want to use "For Each" vArr(i) = .Item(i).Name Next End With 'fails if any shape Name includes a dot Set ob = ActiveSheet.DrawingObjects(vArr) 'always works 'Set ob = ActiveSheet.Shapes.Range(vArr) MsgBox ob.Count End Sub I don't know why I have this problem with punctuation in shape names. First question - does anyone else have same problem, or rather not replicate this problem. I have a convoluted reason for not wanting to use the line that "always works". Assuming this affects all users/versions, does anyone know how to create a multiple object at the "DrawingObjects" level that caters for the possibility of a name including punctuation. TIA, Peter T |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Carlos,
That's great, and so simple ! Thanks, Peter T "Carlos Lozano" wrote in message ... I have used shapes with names containing punctuation, but never access them by name in an array. Try accessing by index instead. Try this: With ActiveSheet.Shapes cnt = .Count ReDim vArr(1 To cnt) For i = 1 To cnt 'don't want to use "For Each" 'vArr(i) = .Item(i).Name vArr(i) = i ' Changes to use index instead of name. Next End With 'fails if any shape Name includes a dot Set ob = ActiveSheet.DrawingObjects(vArr) Carlos Lozano CAX IT Services www.caxonline.net "Peter T" wrote: My routine to create an object of multiple shapes fails if any shape name includes punctuation, eg "My.Rectangle 1" Sub TestMultiObject() Dim cnt As Long, i as Long Dim ob As Object With ActiveSheet.Shapes cnt = .Count ReDim vArr(1 To cnt) For i = 1 To cnt 'don't want to use "For Each" vArr(i) = .Item(i).Name Next End With 'fails if any shape Name includes a dot Set ob = ActiveSheet.DrawingObjects(vArr) 'always works 'Set ob = ActiveSheet.Shapes.Range(vArr) MsgBox ob.Count End Sub I don't know why I have this problem with punctuation in shape names. First question - does anyone else have same problem, or rather not replicate this problem. I have a convoluted reason for not wanting to use the line that "always works". Assuming this affects all users/versions, does anyone know how to create a multiple object at the "DrawingObjects" level that caters for the possibility of a name including punctuation. TIA, Peter T |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
my curser changed from arrow shape to a cross shape???? | New Users to Excel | |||
Ignore punctuation | Excel Programming | |||
Shape names | Excel Programming | |||
Deleting a shape and the cell contents the shape is in. | Excel Programming | |||
Deleting a shape and the cell contents the shape is in. | Excel Programming |