Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Problem with Shape Names containing punctuation
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
|
|||
|
|||
Problem with Shape Names containing punctuation
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
|
|||
|
|||
Problem with Shape Names containing punctuation
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 | |
|
|
Similar Threads | ||||
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 |