Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Is there a way to delete shapes/objects from a preselected area? I am
currently using the macro to select whether or not to delete a specific shape, but this takes a long time as there are many shapes/objects. A second problem is that when the dialog box is open, you can't determine which shape is selected. Tim Sub delete_objects_in_an_area() Dim shp As Shape For Each shp In ActiveSheet.Shapes shp.Select 'can't determine which shape is selected response = MsgBox("Delete shape?", vbYesNoCancel + vbCritical + vbDefaultButton2) If response = vbYes Then shp.Delete ElseIf response = vbCancel Then Exit Sub End If Next end sub |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Select a range of cells that includes at least the top left corner of the
shapes you want delete (doesn't have to be contiguous Sub delete_objects_in_an_area() Dim shp As Shape Dim rng as Range, cell as Range if typename(Selection) < "Range" then Msgbox "Select a range of cells that contain shapes" exit sub End if set rng = Selection For Each shp In ActiveSheet.Shapes set cell = shp.topLeftCell if not intersect(cell,rng) is nothing then _ shp.Delete Next end sub Or use the control key to select the shapes you want to delete Sub DeleteSelectedshapes() Selection.Delete End sub or just hit the delete key. -- Regards, Tom Ogilvy "Tim" wrote in message ... Is there a way to delete shapes/objects from a preselected area? I am currently using the macro to select whether or not to delete a specific shape, but this takes a long time as there are many shapes/objects. A second problem is that when the dialog box is open, you can't determine which shape is selected. Tim Sub delete_objects_in_an_area() Dim shp As Shape For Each shp In ActiveSheet.Shapes shp.Select 'can't determine which shape is selected response = MsgBox("Delete shape?", vbYesNoCancel + vbCritical + vbDefaultButton2) If response = vbYes Then shp.Delete ElseIf response = vbCancel Then Exit Sub End If Next end sub |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks. Worked like a charm.
-----Original Message----- Select a range of cells that includes at least the top left corner of the shapes you want delete (doesn't have to be contiguous Sub delete_objects_in_an_area() Dim shp As Shape Dim rng as Range, cell as Range if typename(Selection) < "Range" then Msgbox "Select a range of cells that contain shapes" exit sub End if set rng = Selection For Each shp In ActiveSheet.Shapes set cell = shp.topLeftCell if not intersect(cell,rng) is nothing then _ shp.Delete Next end sub Or use the control key to select the shapes you want to delete Sub DeleteSelectedshapes() Selection.Delete End sub or just hit the delete key. -- Regards, Tom Ogilvy "Tim" wrote in message ... Is there a way to delete shapes/objects from a preselected area? I am currently using the macro to select whether or not to delete a specific shape, but this takes a long time as there are many shapes/objects. A second problem is that when the dialog box is open, you can't determine which shape is selected. Tim Sub delete_objects_in_an_area() Dim shp As Shape For Each shp In ActiveSheet.Shapes shp.Select 'can't determine which shape is selected response = MsgBox("Delete shape?", vbYesNoCancel + vbCritical + vbDefaultButton2) If response = vbYes Then shp.Delete ElseIf response = vbCancel Then Exit Sub End If Next end sub . |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Set Print Area causes Shapes to disappear | Excel Discussion (Misc queries) | |||
Deleting Shapes | Excel Discussion (Misc queries) | |||
Deleting shapes | Excel Programming | |||
Deleting shapes | Excel Programming | |||
Deleting shapes crashes for me. (Excel 97 vba) | Excel Programming |