Удаление изображений с помощью Excel VBA - PullRequest
8 голосов
/ 19 декабря 2010

Как удалить все изображения на листе Excel 2007? Работающий пример кода был бы великолепен.

Ответы [ 3 ]

13 голосов
/ 10 августа 2015

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

Activesheet.Pictures.Delete

или

Activesheet.Shapes.Delete

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

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

8 голосов
/ 19 декабря 2010
Dim shape As Excel.shape

For Each shape In ActiveSheet.Shapes
        shape.Delete
Next
1 голос
/ 21 ноября 2017

Чтобы удалить все рисунки или другие фигуры, вы можете выполнить итерацию всех их и проверить тип:

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.Pictures.Delete не работал.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...