CommandButton(マクロボタン)を削除
作成したコマンドボタンの削除
使ってないコマンドボタンを削除したい
作成したマクロボタンを削除する場合に、手動で削除する一般的な方法と、VBEで作成したマクロで削除する方法の紹介です。
このページでは、ActiveXコントロールのボタンの削除の削除について解説しています。
シート上のコマンドボタンを全部消したい場合、名前で判定して削除したい場合を考えます。
Excelバージョン:
(サンプルファイルは、こちらから 2010マクロ講座28回サンプルデータ)
ActiveXコントロールのボタンの削除(手動)
ActiveXコントロールのボタンの場合は、デザインモードボタンをクリックしてから、選択状態にしてDelキー。または右クリックメニューから切り取りを選択。


マクロでシート上のマクロボタンを全部削除する
ActiveXコントロールのボタンを削除する場合は、次のコードで削除できます。
ただし、他にOLEObjectsがあるとそれらも含めて全部削除されてしまいます。もし他にOLEEObjectsがあれば使えません。

Sub コマンドボタン全部削除する() ActiveSheet.OLEObjects.Delete End Subマクロを実行すると、

そこで、ActiveXコントロールのCommandButton.1に限定して削除する場合には、以下のようにオブジェクトを限定してやります。
ボタンを指定するには、ボタンをOLEObjectとして宣言し、progIDが”Forms.CommandButton.1”ならば削除するとしています。

Sub コマンドbtn削除() Dim obj As OLEObject For Each obj In ActiveSheet.OLEObjects If obj.progID = "Forms.CommandButton.1" Then obj.Delete Next obj End Sub実行すると、OLEObjectsの中からForms.CommandButton.1だけを削除します。

名前を指定して削除する
コマンドボタンを名前で削除します。
コマンドボタンは、作成した順にCommandButton1、CommandButton2、CommandButton3・・・のように名前が付きます。
そこで、名前で削除することにします。
以下の例では、CommandButton1とCommandButton2以外のボタンを削除します。

Sub コマンドボタンを名前で削除2() Dim コントロール As Object 'または Variant For Each コントロール In ActiveSheet.Shapes 'OLEObjects でもOK If コントロール.Name <> "CommandButton1" And コントロール.Name <> "CommandButton2" Then ActiveSheet.Shapes(コントロール.Name).Delete End If Next End Sub実行すると、CommandButton1とCommandButton2以外のボタンだけを削除します。
