VBATips

特定の名前以外のオートシェイプ・画像を削除する【ExcelVBA】

特定の名前以外のオートシェイプ・画像をすべて削除したい

画像データの呼出などの場合、元データを削除したい場合があります。

'■特定シートの特定の名前以外のオートシェイプ・画像をすべて削除
Public Function call_DeletePicCheck(ws As Worksheet)
    Dim Pic As Shape
    For Each Pic In ws.Shapes
        Select Case Pic.Name
            Case "正方形/長方形 1", "正方形/長方形 2"
                '■特定の名前であれば、何もしない
            Case Else
                '■それ以外のオートシェイプ図形、画像は削除する
                Pic.Delete
        End Select
    Next
End Function

使い方

Public Sub sample()

    '■最前面シート(ActiveSheet)のオートシェイプ・画像を削除(特定名以外)
    Call call_DeletePicCheck(ActiveSheet)

    '■変数wsに格納されたシートのオートシェイプ・画像を削除(特定名以外)
    Call call_DeletePicCheck(ws)
End Sub

結果イメージ

指定したシートの特定の名前以外のオートシェイプ・画像をすべて削除します。

注意点

  • 削除したオートシェイプ・画像は元に戻せません。

関連記事

 

コメント

タイトルとURLをコピーしました