Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

UserForm-Schaltfläche während der Laufzeit hinzufügen

Gruppe

UserForm

Problem

Während der Laufzeit soll einer UserForm eine Schaltfläche mit zugehörigem Ereigniscode hinzugefügt werden.

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.

ClassModule: Tabelle1

Private Sub cmdDialogAufruf_Click()
   frmButtons.Show
End Sub

ClassModule: frmButtons

Dim oEvents As New Collection

Private Sub cmdCancel_Click()
   Unload Me
End Sub

Private Sub cmdNewBtn_Click()
   Dim oNew As clsbtn
   Set oNew = New clsbtn
   If Controls.Count > 2 Then Exit Sub
   Set oNew.oBtn = frmButtons.Controls.Add( _
      "Forms.CommandButton.1", "cmdNew")
   With oNew.oBtn
      .Top = cmdNewBtn.Top
      .Left = cmdNewBtn.Left
      .Width = cmdNewBtn.Width
      .Height = cmdNewBtn.Height
      .Caption = "Klick mich"
   End With
   cmdNewBtn.Top = cmdCancel.Top
   cmdCancel.Top = cmdCancel.Top + 35
   Me.Height = Me.Height + 38
   oEvents.Add oNew
End Sub

ClassModule: clsBtn

Public WithEvents oBtn As MSForms.CommandButton

Private Sub oBtn_Click()
   MsgBox "Ich bin die neue Schaltfläche!"
End Sub