Shape.Delete

オートシェイプ・画像を消去する

 オートシェイプ・ワードアートや画像オブジェクトが、非表示やサイズ「0」になっていると、見つけることが困難です。それらをまとめて消去したい時は、次のコードを使用します。アクティブシート上のオートシェイプや画像オブジェクトを全て消去します。

サンプルコード

Sub Shapes_Delete() 'アクティブシート上にある全ての
                    'オートシェイプや画像オブジェクトを消去する
    Dim objShape As Shape
    With Application
        .ScreenUpdating = False
        For Each objShape In ActiveSheet.Shapes
            objShape.Delete
        Next
        .ScreenUpdating = True
    End With
End Sub

 上記コードはオートシェイプや画像オブジェクトなど全てのShapeオブジェクトが対象ですが、その中で特定のオブジェクトのみを消去する場合は、Typeプロパティで分岐します。Typename関数で分岐する方法もあります。
 次のコードはTypeプロパティで分岐し、画像のみを消去します。

Sub Images_Delete() 'アクティブシートト上にある全ての画像オブジェクトを消去する
    Dim objShape As Shape
    With Application
        .ScreenUpdating = False
        For Each objShape In ActiveSheet.Shapes
            If objShape.Type = msoPicture Then objShape.Delete
        Next
        .ScreenUpdating = True
    End With
End Sub

Excel Tips for Teachers

Copyright (C) 2009- 坂江 保 All Rights Reserved.