Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

UserForm erstellen, anzeigen und löschen

Gruppe

UserForm

Problem

Auf Schaltflächen-Klick wird eine UserForm erstellt, angezeigt und wieder gelöscht.

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

StandardModule: Modul1

Sub CreateForm()
   Dim frmTemp
   Dim oTxtBox As Msforms.TextBox
   Dim oBtnA As Msforms.CommandButton
   Dim oBtnB As Msforms.CommandButton
   Dim sCode As String
   Application.VBE.MainWindow.Visible = False
   Set frmTemp = ThisWorkbook.VBProject.VBComponents.Add(3)
   frmTemp.Properties("Width") = 135
   frmTemp.Properties("Height") = 115
   frmTemp.Properties("Caption") = "Nur ein Test"
   Set oTxtBox = frmTemp.Designer.Controls.Add("forms.TextBox.1")
   With oTxtBox
      .Left = 5
      .Top = 5
      .Width = 120
      .Height = 20
      .Text = "Dies ist ein Test"
   End With
   Set oBtnA = frmTemp.Designer.Controls.Add("forms.CommandButton.1")
   With oBtnA
      .Left = 5
      .Top = 30
      .Width = 120
      .Height = 20
      .Caption = "Einlesen"
   End With
   Set oBtnB = frmTemp.Designer.Controls.Add("forms.CommandButton.1")
   With oBtnB
      .Left = 5
      .Top = 60
      .Width = 120
      .Height = 20
      .Caption = "Abbrechen"
   End With
   sCode = "Private Sub CommandButton1_Click()" & vbLf
   sCode = sCode & "   MsgBox ""Wert aus der TextBox: "" & TextBox1.Text" & vbLf
   sCode = sCode & "End Sub" & vbLf & vbLf
   sCode = sCode & "Private Sub CommandButton2_Click()" & vbLf
   sCode = sCode & "   Unload Me" & vbLf
   sCode = sCode & "End Sub" & vbLf
   With frmTemp.CodeModule
      .AddFromString sCode
   End With
   VBA.UserForms.Add(frmTemp.Name).Show
   ThisWorkbook.VBProject.VBComponents.Remove VBComponent:=frmTemp
End Sub