Wie in einem ListBox-Steuerelement ausgewählten Elemente bestimmen


Microsoft Word 98 Macintosh Edition-Version dieses Artikels finden Sie unter 201669 .

Zusammenfassung


Dieser Artikel beschreibt, wie Abrufen von ausgewählten Elementen aus einer
ListBox -Steuerelement, das Sie mehrere Werte auswählen kann.

Weitere Informationen


Microsoft bietet Programmierbeispiele lediglich zur Veranschaulichung, ohne ausdrückliche oder konkludente Gewährleistung. Dies beinhaltet, ist jedoch nicht beschränkt auf, konkludente Gewährleistungen der Tauglichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der von Beispielen verwendeten Programmiersprache und den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden, vertraut sind. Microsoft-Supportmitarbeiter können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, sie werden jedoch diese Beispiele nicht verändern um eine erweiterte Funktionalität aufzuzeigen oder Prozeduren entwickeln, die Ihren Anforderungen entsprechen.

In einer UserFormbeim Festlegen der MultiSelect -Eigenschaft auf 1 - FmMultiSelectMulti für ein ListBox -Steuerelement können Sie eine beliebige Anzahl von Elementen aus einer Liste auswählen. Beispielsweise enthält eine Liste der Tage der Woche (Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag und Samstag), können Sie eine, keine oder alle Elemente auswählen.

Die Elemente bestimmt, die ausgewählt sind, können Sie die Selected -Eigenschaft des Listenfeldes. Die Selected -Eigenschaft eines Listenfeldes ist ein Array von Werten, jeden Wert True (wenn das Element ausgewählt ist) oder False (wenn das Element nicht ausgewählt ist).

Beispielsweise würde enthält sieben Tage die Woche, Sonntag, Dienstag und Samstag ausgewählt, Array der Selected -Eigenschaft die folgenden Werte enthalten:
True, False, True, False, False, False, True
Dies gilt, da das erste Element (Sonntag) ausgewählt, das zweite Element (Montag) nicht ausgewählt ist, das dritte Element (Dienstag) ausgewählt, der vierten bis sechsten Elemente (Mittwoch, Donnerstag und Freitag) nicht ausgewählt und siebten Elements (Samstag) ausgewählt.

Beispiel für Visual Basic-Prozedur

Der folgenden Makrocode bietet zwei Methoden für die ausgewählten Daten aus dem Listenfeld. Die erste Methode verwendet ein ausgewähltes Element zu einem Zeitpunkt, und die zweite Methode erstellt eine Liste aller ausgewählten Elemente.

Hinweis Schritte zum Erstellen einer UserForm im Visual Basic-Editor annehmen, dass Sie Kenntnisse über Visual Basic for Applications, Microsoft Word und Microsoft Forms und Tools.
  1. Visual Basic-Editor zu starten. Dazu drücken Sie ALT + F11.
  2. Wenn das Dialogfeld Eigenschaften nicht angezeigt wird, klicken Sie im Menü Ansicht auf Eigenschaften .
  3. Wenn das Fenster Projekt-Explorer nicht sichtbar ist, klicken Sie auf
    Projekt-Explorer im Menü Ansicht .
  4. Klicken Sie im Menü Einfügen auf
    UserForm.
  5. Klicken Sie auf das Listenfeld auf der
    Steuerelemente-Toolbox, und ziehen Sie es auf das Benutzerformular.
  6. Ändern Sie im Fenster Eigenschaften ListBox1 MultiSelect -Eigenschaft auf den Wert 1 - FmMultiSelectMulti .
  7. Klicken Sie auf die Befehlsschaltfläche auf der
    Steuerelemente Toolboxund ziehen es die UserForm zu "CommandButton1" der UserForm.
  8. Wiederholen Sie Schritt 7, um eine zweite
    Befehlsschaltfläche im Benutzerformular. Dadurch wird die
    CommandButton2 Steuerelement in das Benutzerformular.
  9. Doppelklicken Sie auf die UserForm , um das Codefenster für die UserFormanzuzeigen.
  10. Drücken Sie Bild-ab, und geben Sie dann den folgenden Makrocode für Userform_Initialize und CommandButton_Click -Ereignisse:
Private Sub UserForm_Initialize()
'Creates and assigns the Array to the ListBox when the form loads.
Dim mylist As Variant

mylist = Array("Sunday", "Monday", "Tuesday", "Wednesday", _
"Thursday", "Friday", "Saturday")
ListBox1.List = mylist

End Sub

Private Sub CommandButton1_Click()

'First Method: Displays individual selections one at a time.
For x = 0 To ListBox1.ListCount - 1

If ListBox1.Selected(x) = True Then
MsgBox ListBox1.List(x)
End If

Next x
Unload Me

End Sub

Private Sub CommandButton2_Click()

'Second Method: Displays all the items in one message box
Dim msg As String

For x = 0 To ListBox1.ListCount - 1

If ListBox1.Selected(x) = True Then
msg = msg & ListBox1.List(x) & vbCrLf
End If

Next x
MsgBox "You have selected " & vbCrLf & msg
Unload Me

'Uncomment the following two line to insert the variable
'into a document.
'Documents.Add
'Selection.TypeText Text:= msg

End Sub