Mit nur wenigen Zeilen Code, können wir leicht eine Schleife durch Kontrollen auf einer Excel-VBA-Userform. Die Userform werden wir aussehen wie folgt erstellen:

Loop through Controls in Excel VBA

Um diese Userform zu erstellen, führen Sie die folgenden Schritte.

  1. Öffnen Sie den Visual Basic-Editor. Wenn das Projekt-Explorer nicht sichtbar ist, klicken Sie auf Ansicht, Projekt-Explorer.

  2. Klicken Sie auf Einfügen, Benutzerformular. Wenn die Toolbox nicht automatisch angezeigt wird, klicken Sie auf Ansicht, Toolbox. Ihr Bildschirm sollte wie unten aufgebaut werden.

Userform Screen Setup in Excel VBA

  1. das Etikett hinzufügen, Kontrollkästchen (erster die zweiten unter dem ersten, und so weiter an der Spitze,) und den Befehlsschaltflächen. Sobald dies abgeschlossen ist, sollte das Ergebnis mit dem Bild von der Userform gezeigt früher konsistent sein. Erstellen Sie zum Beispiel einer Kontrollkästchen Kontrolle von aus der Toolbox auf CheckBox klicken. Als nächstes können Sie ein Kontrollkästchen auf dem Benutzerformular ziehen.

  2. Sie können die Namen ändern und die Beschriftungen der Kontrollen. Die Namen werden in dem Excel-VBA-Code verwendet. Bildunterschriften sind diejenigen, die auf dem Bildschirm angezeigt. Es empfiehlt sich, die Namen der Kontrollen zu ändern, aber es ist hier nicht notwendig, da wir nur wenige Kontrollen in diesem Beispiel haben. Um die Beschriftung der Userform, Etikett, Kontrollkästchen und Befehlsschaltfläche zu ändern, klicken Sie auf Ansicht, Eigenschaften-Fenster und klicken Sie auf jede Kontrolle.

  3. die Userform zu zeigen, eine Befehlsschaltfläche auf dem Arbeitsblatt platzieren und die folgende Codezeile hinzu:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Wir haben nun den ersten Teil der Userform erstellt. Obwohl es schon ordentlich aussieht, wird noch nichts geschehen, wenn wir auf die Schaltfläche Löschen klicken.

  1. Öffnen Sie den Visual Basic-Editor.

  2. Geben Sie in dem Projekt-Explorer, klicken Sie doppelt auf UserForm1.

  3. Klicken Sie doppelt auf die Schaltfläche Löschen.

  4. die folgenden Codezeilen hinzu:

Private Sub CommandButton1_Click()

Dim contr As control

For Each contr In UserForm1.Controls

If TypeName(contr) = "CheckBox" Then

contr.Value = False

End If

Next

End Sub

Erläuterung: Excel-VBA-Schleife durch alle Steuerelemente auf dem Benutzerformular. Die Type-Name-Funktion wird verwendet, um die Kontrollkästchen Kontrollen auszufiltern. Wenn ein Kontrollkästchen-Steuerelement, unchecks Excel VBA das Kontrollkästchen. contr zufällig hier gewählt, können Sie einen beliebigen Namen verwenden. Denken Sie daran, diesen Namen in dem Rest des Codes zu beziehen.

Ergebnis, wenn Sie auf die Schaltfläche Löschen klicken:

Loop through Controls Result