使用Excel VBA删除图片

时间:2010-12-18 21:22:04

标签: vba excel-2007

如何删除Excel 2007工作表中的所有图片?一个有效的代码示例很棒。

3 个答案:

答案 0 :(得分:13)

最简单的方法:

Activesheet.Pictures.Delete

Activesheet.Shapes.Delete

取决于图片的对象类型。

以更高的效率删除所有图片,然后迭代(循环)并逐个删除它们。

答案 1 :(得分:8)

Dim shape As Excel.shape

For Each shape In ActiveSheet.Shapes
        shape.Delete
Next

答案 2 :(得分:1)

要删除所有图片或其他形状,您可以迭代所有图片并检查类型:

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