martes, 17 de julio de 2018

Borrar todas las formas de una hoja de Excel con VBA


Desde hace mas de 10 años, trabajo en una empresa que desarrolla herramientas y reportes para empresas centroamericanas y sudamericanas. 

Sin embargo, usualmente estos reportes deben ser exportados a otras hojas de Excel, las cuales no deben tener ningún botón que tiene la herramienta origen.



Para lograr esto, podemos colocar las siguientes lineas:

Sub DeleteAllShapes()

Dim Shp As Shape

For Each Shp In ActiveSheet.Shapes
    Shp.Delete
Next Shp

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Para eliminar solo AutoShapes y Cuadros de texto puede usar:


Sub DeleteAllShapes()

Dim Shp As Shape

For Each Shp In ActiveSheet.Shapes
    If Shp.Type = msoAutoShape Or Shp.Type = msoTextBox Then Shp.Delete
Next Shp

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Espero que les sirva.

Ing. Enrique Neciosup Morales