Jak určit položky, které jsou vybrány v ovládacím prvku ListBox


Microsoft Word 98 Macintosh Edition verzi tohoto článku naleznete 201669 .

Souhrn


Tento článek popisuje, jak načíst vybrané položky z
ListBox ovládací prvek, který umožňuje vybrat více hodnot.

Další informace


Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci bez žádné záruky výslovně uvedené nebo odvozené. To zahrnuje, ale není omezen pouze na předpokládané záruky obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že jste obeznámeni s programovacím jazykem, který je předmětem ukázky a s nástroji, které slouží k vytvoření a ladění skriptu. Pracovníci podpory společnosti Microsoft mohou pomoci vysvětlit funkce určitého postupu, nemohou však následující příklady rozšířit o další funkce nebo vytvářet postupy podle vašich konkrétních požadavků.

V UserFormpři nastavení vlastnosti MultiSelect 1 - fmMultiSelectMulti pro ovládací prvek ListBox , můžete zvolit libovolný počet položek ze seznamu. Například pokud seznam obsahuje dny v týdnu (neděle, pondělí, úterý, středa, čtvrtek, pátek a sobota), můžete zvolit libovolné, žádné nebo všechny položky.

Chcete-li zjistit, které jsou vybrány položky, můžete použít vlastnost vybrané v rozevíracím seznamu. Vlastnost vybrané pole se seznamem je pole hodnot, kde každá hodnota je buď PRAVDA (Pokud je vybraná položka) nebo False (Pokud položka není vybrána).

Například pokud seznam obsahuje sedmidenní týden, neděle, úterý a sobota jsou vybrány, vlastnost vybrané pole bude obsahovat následující hodnoty:
PRAVDA, NEPRAVDA, True, False, False, False, True
To platí, protože je vybrána první položka (neděle), druhou položku (pondělí) není zaškrtnuto, je vybrána třetí položka (úterý), čtvrtý až šestý položky (středa, čtvrtek a pátek) nejsou vybrány a je vybrána položka sedmý (sobota).

Ukázkové procedury jazyka Visual Basic

Následující kód makra poskytuje dvě metody pro použití vybraná data z ovládacího prvku ListBox. První metoda používá jednu položku najednou a druhá metoda vytvoří seznam všech vybraných položek.

Poznámka: Tyto kroky pro vytvoření UserForm v editoru jazyka Visual Basic předpokládá znalost jazyka Visual Basic pro aplikace Microsoft Word a Microsoft Forms návrhu a nástrojů.
  1. Spuštění editoru jazyka Visual Basic. Chcete-li to provést, stiskněte kombinaci kláves ALT + F11.
  2. Dialogové okno Vlastnosti není zobrazen, klepněte na příkaz Vlastnosti v nabídce Zobrazit .
  3. Pokud okno Prohlížeč projektu není zobrazen, klepněte na tlačítko
    Project Explorer v nabídce Zobrazit .
  4. V nabídce Vložit klepněte na tlačítko
    UserForm.
  5. Klepněte na ovládací prvek ListBox
    Ovládací prvky panelu nástrojůa přetáhněte jej UserForm.
  6. V okně Vlastnosti ListBox1 změňte vlastnost MultiSelect hodnota 1 - fmMultiSelectMulti .
  7. Klepněte na ovládací prvek CommandButton v
    Ovládací prvky panelu nástrojůa přetáhněte jej UserForm umístit CommandButton1 ovládacího prvku na UserForm.
  8. Opakujte krok 7 pro druhý
    CommandButton na UserForm. To umístí
    Prvek CommandButton2 na UserForm.
  9. Poklepejte na UserForm zobrazit okno kód pro UserForm.
  10. Stiskněte klávesu PAGE DOWN a potom zadejte následující kód makra pro Userform_Initialize a události CommandButton_Click :
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