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以外のボタンだけを削除します。
