トップ > 汎用コード > オートシェイプ・画像を削除する

オートシェイプ・画像を削除する2010.06.09

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


【お薦め】マクロ・プロシージャを管理する無料のツール!
 Excelマクロ管理ツール

サンプルコード

コードの貼り付け場所   VBAコードをカラーで印刷・Web掲載するためのツールはこちら

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

オートシェイプを対象にする場合は、msoPicturemsoAutoShape に変更します。


ページトップへ戻る

Excel 汎用コード

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