読者です 読者をやめる 読者になる 読者になる

Excelユーザーフォームに動的にコマンドボタンを追加する

Excel

クラスモジュール「Button_Setting」をあらかじめ追加しておく

Option Explicit

Public WithEvents original_button As CommandButton

Private Sub original_button_Click()

    'クリックイベントをここに記載

End Sub
Option Explicit

Sub ユーザーフォームを開く()

    Load UserForm1
    
    UserForm1.Width = 224.5
    UserForm1.Height = 305
    
    Dim NewBtn(0 To 48) As Object
    
    With UserForm1
        Dim i As Integer
        For i = 0 To 48
            Set NewBtn(i) = New Button_Setting
            Set NewBtn(i).original_button = .Controls.Add("Forms.CommandButton.1", "button" & i)
            With NewBtn(i).original_button
                .Height = 30
                .Width = 30
                .Top = 60 + (i \ 7) * 30
                .Left = 5 + (i Mod 7) * 30
                .Caption = i
            End With
        Next i
    End With
    
    UserForm1.Show
    
End Sub