/ / Excel VBA Multicolumn Kombinationsfeld

Excel VBA Multicolumn Kombinationsfeld

Unten sehen wir uns ein Programm in Excel VBA erstellt ein Benutzerformular, das a enthält mehrspaltiges Kombinationsfeld.

Die Benutzerform, die wir erstellen werden, sieht folgendermaßen aus:

Multicolumn Combo Box in Excel VBA

Führen Sie die folgenden Schritte aus, um dieses Benutzerformular zu erstellen.

1. Öffnen Sie den Visual Basic-Editor. Wenn der 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 folgt eingerichtet sein.

Benutzerbildschirm Setup in Excel VBA

3. Fügen Sie das Label, das Kombinationsfeld und die Befehlsschaltflächen hinzu. Sobald dies abgeschlossen ist, sollte das Ergebnis mit dem zuvor gezeigten Bild des Benutzerformulars übereinstimmen. Erstellen Sie beispielsweise ein Kombinationsfeldsteuerelement, indem Sie in der Toolbox auf ComboBox klicken. Als Nächstes können Sie ein Kombinationsfeld auf dem Benutzerformular ziehen.

4. Sie können die Namen und die Beschriftungen der Steuerelemente ändern. Namen werden im Excel-VBA-Code verwendet. Untertitel sind diejenigen, die auf Ihrem Bildschirm erscheinen. Es empfiehlt sich, die Namen der Steuerelemente zu ändern. Dies ist jedoch nicht erforderlich, da in diesem Beispiel nur wenige Steuerelemente vorhanden sind. Um die Beschriftung der Benutzerformular-, Beschriftungs- und Befehlsschaltflächen zu ändern, klicken Sie auf Ansicht, Eigenschaftenfenster, und klicken Sie auf jedes Steuerelement.

5. Um das Benutzerformular anzuzeigen, platzieren Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt und fügen Sie die folgende Codezeile hinzu:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Wir werden jetzt die Sub UserForm_Initialize erstellen. Wenn Sie die Show-Methode für das Benutzerformular verwenden, wird dieses Sub-Objekt automatisch ausgeführt.

6. Öffnen Sie den Visual Basic-Editor.

7. Klicken Sie im Projektexplorer mit der rechten Maustaste auf UserForm1, und klicken Sie dann auf Code anzeigen.

8. Wählen Sie Benutzerform in der linken Dropdown-Liste. Wählen Sie Initialisieren aus der rechten Dropdown-Liste.

9. Fügen Sie die folgenden Codezeilen hinzu:

Private Sub UserForm_Initialize()

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String
Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"
Films(2, 1) = "Speed"
Films(3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"
Films(2, 2) = "Action"
Films(3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

Erläuterung: Die erste Codezeile legt die Anzahl der Spalten des Kombinationsfelds auf 2 fest. Anstatt die Anzahl der Spalten zur Laufzeit festzulegen, können Sie diese Einstellung auch zur Entwurfszeit konfigurieren. Um dies zu erreichen, klicken Sie mit der rechten Maustaste auf das Kombinationsfeld-Steuerelement, klicken Sie auf Eigenschaften, und legen Sie die ColumnCount-Eigenschaft auf 2 fest. Als nächstes deklarieren und initialisieren wir ein zweidimensionales Array. Die letzte Codezeile weist das Array dem Kombinationsfeld zu.

Wir haben jetzt den ersten Teil des Benutzerformulars erstellt. Obwohl es bereits ordentlich aussieht, wird nichts passieren, wenn wir auf die Befehlsschaltflächen in der Benutzerform klicken.

10. Doppelklicken Sie im Projektexplorer auf UserForm1.

11. Doppelklicken Sie auf die Schaltfläche OK.

12. Fügen Sie die folgenden Codezeilen hinzu:

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next
MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

Hinweis: Diese Codezeilen schließen die Excel VBA-Benutzerform und zeigen das ausgewählte Element und Genre an. Die "On Error Resume Next" -Anweisung ignoriert den Fehler, wenn der Benutzer seinen eigenen Film eingibt (in diesem Fall ist kein Genre verfügbar).

13. Doppelklicken Sie auf die Schaltfläche Abbrechen.

14. Fügen Sie die folgende Codezeile hinzu:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Ergebnis, wenn Sie Geschwindigkeit auswählen und auf OK klicken.

Multicolumn Combo Box Ergebnis

Multicolumn Combo Box Ergebnis

Lesen Sie auch: