web-dev-qa-db-ja.com

ExcelVBAで写真を削除する

Excel 2007ワークシートのすべての画像を削除するにはどうすればよいですか?実用的なコード例は素晴らしいでしょう。

9
Arlen Beiler
Dim shape As Excel.shape

For Each shape In ActiveSheet.Shapes
        shape.Delete
Next
11
Eric Fortis

最も簡単な方法:

Activesheet.Pictures.Delete

または

Activesheet.Shapes.Delete

あなたの写真がオブジェクトのタイプに応じて。

すべての画像をより効率的に削除してから、繰り返し(ループして)、1枚ずつ削除します。

15
jony

すべての画像または他の形状を削除するには、それらすべてを繰り返して、タイプを確認します。

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

2
Eneas Gesing