Excelにたくさんのオートシェイプがあって、全部を一度に削除したい時があります。
でも、量が多かったり、隠れていたりすると削除が大変ですよね。
VBAを使うと簡単に削除することができます。
シートにある全てのオートシェイプを削除する方法と、特定の名前のオートシェイプを削除する方法、特定の名前以外のオートシェイプを削除する方法の記録です。
< スポンサーリンク >
全てのオートシェイブを削除する
VBEに次のように書き込みます。
アクティブシートの全てのオートシェイプを順番に削除していくコードです。
Private Sub test()
Dim s As Shape
For Each s In ActiveSheet.Shapes
s.Delete
Next
End Sub
書き込んだVBAを実行すると、全てのオートシェイプが削除されます。
特定の名前のオートシェイプを削除する
特定の1つのオートシェイプを削除する
VBEに次のように書き込みます。
アクティブシートの全てのオートシェイプを順番にループし、オートシェイプの名前と一致したら削除していくコードです。
Private Sub test()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If s.Name = "Oval 1" Then
s.Delete
End If
Next
End Sub
書き込んだVBAを実行すると、特定の名前のオートシェイプが削除されます。
特定の名前で始まる全てのオートシェイブを削除する
VBEに次のように書き込みます。
アクティブシートの全てのオートシェイプを順番にループし、オートシェイプが「Oval」で始まる名前と一致したら削除していくコードです。
Private Sub test()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If s.Name Like "Oval*" Then
s.Delete
End If
Next
End Sub
特定の名前以外のオートシェイブを削除する
VBEに次のように書き込みます。
Private Sub test()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If s.Name <> "Oval 1" Then
s.Delete
End If
Next
End Sub
書き込んだVBAを実行すると、特定の名前以外のオートシェイプが削除されます。
こんな記事も書いています