Oder ein Mix. Ich hab mal ein Beispielcode geschrieben der aus dem Blatt alle Bilder löschen soll. Ob Integriert mit InsertPictureInCell bzw. PlacePictureInCell oder eben nicht (AddPicture/Pictures.Insert) ist dabei egal:
Darauf werde ich den rest dann aufbauen.
Hab auch mal die Zeit gestoppt. Wenn man den HasRichDataType abfrägt wenn man ein Tabellenblat Scannt (wo die meisten Zellen keine Bilder enthalten) dann ist der Code etwas schneller als wenn man einfach auf alle Zellen nur das PlacePictureOverCells anwendet.
Code:
Sub PiXremove()
Dim xC As Range
For Each xC In Range(Cells(1, 1), Cells(LetzteZeile, LetzteSpalte))
If xC.HasRichDataType Then
xC.PlacePictureOverCells
End If
Next
If ActiveSheet.Shapes.Count > 0 Then
ActiveSheet.Shapes.SelectAll
Selection.Delete
End If
End Sub
Function LetzteSpalte() As Long
LetzteSpalte = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column
End Function
Function letzteZeile() As Long
letzteZeile = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
End Function
Darauf werde ich den rest dann aufbauen.
Hab auch mal die Zeit gestoppt. Wenn man den HasRichDataType abfrägt wenn man ein Tabellenblat Scannt (wo die meisten Zellen keine Bilder enthalten) dann ist der Code etwas schneller als wenn man einfach auf alle Zellen nur das PlacePictureOverCells anwendet.