Menuへ
コマンドボタンを動的に作成・削除




シートコード

Option Explicit

'カーソルがあるセルにコマンドボタンを作成
Private Sub MyMakeCmdBtn()
    Dim lRow As Long
            
    lRow = ActiveCell.Row
    With ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False)
        .Object.Caption = "ボタン"
        .Object.Font.Size = 9
        .Object.BackColor = &H1FFA2
        .Width = ActiveCell.Width * 2
        .Height = ActiveCell.Height * 2
    End With
End Sub

'作成、削除以外のコマンドボタンを削除
Private Sub MyDeleteCmdBtn()
    Dim tCtrl As Variant

    '全てのコントロール
    For Each tCtrl In ActiveSheet.Shapes
        'コントロールの名前をチェック
        If tCtrl.Name <> "CommandButton1" And tCtrl.Name <> "CommandButton2" Then
            '作成、削除のコマンドボタンでなければ削除
            ActiveSheet.Shapes(tCtrl.Name).Delete
        End If
    Next
End Sub

Private Sub CommandButton1_Click()
    'カーソルがあるセルにコマンドボタンを作成
    MyMakeCmdBtn
End Sub

Private Sub CommandButton2_Click()
    '作成、削除以外のコマンドボタンを削除
    MyDeleteCmdBtn
End Sub

実行結果
[作成画面]




Topへ