¿Cómo elimino todas las imágenes en una hoja de cálculo de Excel 2007? Un ejemplo de código de trabajo sería genial.Eliminación de imágenes con Excel VBA
Respuesta
Dim shape As Excel.shape
For Each shape In ActiveSheet.Shapes
shape.Delete
Next
La forma más sencilla:
Activesheet.Pictures.Delete
o
Activesheet.Shapes.Delete
Dependiendo del tipo de objeto que la imagen es.
Elimina todas las imágenes con mayor eficiencia y luego itera (en bucle) y las borra una a una.
'Activesheet.Shapes.Delete'throws un error (el objeto no es compatible con este método) –
Para borrar todas las imágenes u otros formas, se puede repetir todos ellos y comprobar el tipo:
Dim shape As Excel.shape
For Each shape In ActiveSheet.Shapes
Select Case shape.Type
Case msoPicture, msoMedia, msoShapeTypeMixed, msoOLEControlObject, msoAutoShape
shape.Delete
Case Else
'Do nothing
End Select
Next
En mi caso este código era muy útil porque mi hoja estaba lleno de formas transparentes de tipo msoAutoShape cual Pensé que eran imágenes. Por lo tanto, Activesheet.Pictures.Delete no funcionaba.
puede encontrar todos los tipos de forma en este enlace: http://msdn.microsoft.com/en-us/library/aa432678(v=office.12).aspx
- 1. Renombrar archivos con Excel VBA
- 2. Subcadena de Excel VBA
- 3. OnClick en Excel VBA
- 4. Eliminación de imágenes duplicadas
- 5. Excel VBA - xlDown
- 6. Truncamiento doble con VBA en Excel
- 7. matriz en Excel VBA
- 8. Excel VBA Colón
- 9. VBA cambia Excel 2002 -> Excel 2007
- 10. Excel VBA - salida de bucle
- 11. Actualizar Excel Función VBA Resultados
- 12. Excel VBA Regex Match Position
- 13. Eliminación de un archivo en VBA
- 14. Función de llamada a Excel VBA con nombre de variable
- 15. Ocultar una hoja de cálculo de Excel con VBA
- 16. Cómo bucle de filas con macro de Excel VBA?
- 17. Buenas prácticas de desarrollo de Excel VBA
- 18. Excel vba - cadena de conversión al número
- 19. ¿Alternativa al Editor de Excel VBA?
- 20. Abrir archivo de Excel para leer con VBA sin pantalla
- 21. Obtenga el contenido de una carpeta sharepoint con Excel VBA
- 22. Crear una tabla SQL de Excel VBA
- 23. Filtrado de matrices 2D en Excel VBA
- 24. Errores de manejo adecuado en VBA (Excel)
- 25. Filtrar tabla dinámica de Excel utilizando VBA
- 26. Matriz de Rango en Excel VBA
- 27. Barra de progreso en VBA Excel
- 28. objeto de error Requerido Excel VBA
- 29. Documentación para macros VBA de Excel
- 30. Excel VBA - Ejecutar macro antes de guardar
Lo he probado y funciona –
Tenga en cuenta que esto elimina los gráficos dinámicos (y probablemente cualquier otra cosa que haya seleccionado como una imagen). –
Tiene razón, para evitarlo, suponiendo que está utilizando los nombres de gráfico predeterminados ("Gráfico 1", "Gráfico 2", ...), puede probar dentro del bucle con la función inString, p. InStr (0, shape.name, "Chart"), de modo que si no contiene el "Gráfico" en el nombre omítalo. –