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

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

シート上のオートシェイプ・ワードアートや画像オブジェクトが、非表示やサイズ「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

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

書籍紹介本を執筆しました

Excelを学びのツールに
「Excelで画像編集 ~編集機能を使い倒す!!~」(Kindle版)
Excelは表計算アプリケーションですが、画像や図形の優れた編集機能を備えています。
本書では、それらの機能や操作に焦点をあてた解説をし、あわせて編集の具体例とその方法を紹介します!!


ページトップへ戻る

Excel 汎用コード



Word 汎用コード

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