- ベストアンサー
オートシェイブだけ削除したい場合、
シートの上にオートシェイブとOLEオブジェクトの方のコマンドボタンがあり、 オートシェイブだけ削除したい場合、 どのようなvbaコードになるのでしょうか? Sub Sample() ActiveSheet.Shapes.Delete End Sub 上だと 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)」 になります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでどうでしょう? Sub Sample1() Dim SH As Shape For Each SH In Sheets("シート名").Shapes If SH.Type <> 12 Then SH.Delete End If Next End Sub ActiveXコントロールは、Typeの値が「12」ですので、 全ての図形のTypeを確認し、「12」以外なら消してやると言う内容です。 補記) 図形を削除するときは Sub Sample() ActiveSheet.Shapes(1).Delete End Sub のように、図形の連番を指定してやるのが一般的です。 表示されているシートの全ての図形を削除するなら Sub sample2() ActiveSheet.Shapes.SelectAll Selection.Delete End Sub こんな感じです。
お礼
ありがとうございました。