Удаление изображений с помощью Excel VBA

Как удалить все изображения на листе Excel 2007? Пример рабочего кода был бы отличным.

3 ответов


Dim shape As Excel.shape

For Each shape In ActiveSheet.Shapes
        shape.Delete
Next

самый простой способ:

Activesheet.Pictures.Delete

или

Activesheet.Shapes.Delete

в зависимости от типа объекта свой рисунок.

удаляет все изображения с большей эффективностью, а затем повторяет (цикл) и удаляет их один за другим.


чтобы удалить все изображения или другие фигуры, вы можете повторить их все и проверить тип:

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

в моем случае этот код был полезен, потому что мой лист был полон прозрачных форм типа msoAutoShape, которые я думал, были изображениями. Так, Параметру Activesheet.Картины.Удалить не работает.

вы можете найти все типы фигур по этой ссылке:http://msdn.microsoft.com/en-us/library/aa432678 (v=офис.12).aspx