CommandButton(マクロボタン)を削除

作成したコマンドボタンの削除

使ってないコマンドボタンを削除したい

作成したマクロボタンを削除する場合に、手動で削除する一般的な方法と、VBEで作成したマクロで削除する方法の紹介です。
このページでは、ActiveXコントロールのボタンの削除の削除について解説しています。 シート上のコマンドボタンを全部消したい場合、名前で判定して削除したい場合を考えます。
Excelバージョン:2013201020072003
(サンプルファイルは、こちらから 2010マクロ講座28回サンプルデータ

ActiveXコントロールのボタンの削除(手動)

ActiveXコントロールのボタンの場合は、デザインモードボタンをクリックしてから、選択状態にしてDelキー。または右クリックメニューから切り取りを選択。
マクロボタンを削除マクロ2

マクロでシート上のマクロボタンを全部削除する

ActiveXコントロールのボタンを削除する場合は、次のコードで削除できます。 ただし、他にOLEObjectsがあるとそれらも含めて全部削除されてしまいます。もし他にOLEEObjectsがあれば使えません。
Sub コマンドボタン全部削除する()
    ActiveSheet.OLEObjects.Delete
End Sub
マクロを実行すると、
マクロボタンを削除マクロ3
そこで、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だけを削除します。
マクロボタンを削除マクロ4

名前を指定して削除する

コマンドボタンを名前で削除します。 コマンドボタンは、作成した順に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以外のボタンだけを削除します。
NAMAマクロ6