Eliminar todas las imágenes

Aporta tus macros y códigos Excel de interés para la comunidad.
Reglas del Foro
En este foro solo puedes aportar macros y códigos Excel de interés para la comunidad (no es para hacer preguntas!)
  • Anuncio
Manual Excel avanzado

Eliminar todas las imágenes

Notapor TodoExcel » 16 Mar 2010 18:18

Esta macro es muy útil para eliminar y borrar todas las imágenes (shapes, images) de todas las hojas.

Código: Seleccionar todo
Sub shapekiller()
Dim ws As Worksheet
Dim SH As Shape

  For Each ws In Worksheets
      For Each SH In ws.Shapes
          SH.Delete
      Next
  Next

End Sub


Salu2.xls
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
TodoExcel
Manager Exceluciones
Manager Exceluciones
 
Registrado: 05 Jun 2004 16:05

Re: Eliminar todas las imágenes

Notapor galileogali » 16 Mar 2010 19:42

Uno de los Loops puede evitarse, así:

Sub shapekiller()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Shapes.SelectAll
Selection.Delete
Next
End Sub

GALILEOGALI
http://excelgali.mejorforo.net/
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
galileogali
Moderator
Moderator
 
Registrado: 07 Ene 2005 22:46
Ubicación: QUIROGA (ba), ARGENTINA

Re: Eliminar todas las imágenes

Notapor Antoni » 17 Mar 2010 04:03

También puede ser útil:

Código: Seleccionar todo
Activesheet.DrawingObjects.Delete

¡Atención! Borra todos los objetos incrustados en la hoja, incluidos gráficos y controles.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
 
Registrado: 22 Dic 2009 04:58
Ubicación: GALICIA (ESPAÑA)

Re: Eliminar todas las imágenes

Notapor Antoni » 17 Mar 2010 08:00

Hola:

He comprobado que la macro borra imágenes y dibujos, y además todos los demás objetos incrustados.
Buscando en mi "baul" he encontrado la forma de restringir el tipo de objeto a eliminar.
Os adjunto la macro con los añadidos.

Código: Seleccionar todo
Sub shapekiller()
On Error Resume Next
Dim ws As Worksheet
Dim SH As Shape

  For Each ws In Worksheets
    If ws.CodeName <> "Licencia" Then
      For Each SH In ws.Shapes
          If SH.Type = 1 Then SH.Delete  'Dibujos
          If SH.Type = 9 Then SH.Delete  'Líneas y flechas
          If SH.Type = 12 Then SH.Delete 'Controles VBA
          If SH.Type = 13 Then SH.Delete 'Imágenes
          If SH.Type = 15 Then SH.Delete 'WordArt
          If SH.Type = 17 Then SH.Delete 'Cuadros de texto
      Next
    End If
  Next

End Sub

Supongo que debe haber mas tipos, si alguien sabe de alguno mas que los vaya añadiendo.

Salu2 a to2...to2

Antoni
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
 
Registrado: 22 Dic 2009 04:58
Ubicación: GALICIA (ESPAÑA)


Volver a Macros, programación y códigos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados