Hvordan du kan fastslå hvilke elementer som er valgt i en liste


Hvis en Microsoft Word 98 Macintosh Edition-versjon av denne artikkelen, kan du se 201669 .

Sammendrag


Denne artikkelen beskriver hvordan du henter valgte varer fra en
Liste som gjør det mulig for deg å velge flere verdier.

Hvis du vil ha mer informasjon


Microsoft bruker ment som eksempler, uten garanti, verken direkte eller indirekte. Dette inkluderer, men er ikke begrenset til, eventuelle stilltiende garantier om salgbarhet eller anvendelighet for særskilte formål. Denne artikkelen forutsetter at du er kjent med programmeringsspråket som anvendes, og verktøyene som brukes til å opprette og feilsøke prosedyrer. Microsofts kundestøtteteknikere kan hjelpe deg med å forklare funksjonaliteten til en bestemt prosedyre, men de endrer ikke disse eksemplene for å lage forbedret funksjonalitet eller lage prosedyrer som dekker dine spesifikke behov.

I en UserFormnår du setter egenskapen MultiSelect til 1 - fmMultiSelectMulti for en liste, kan du velge flere elementer fra en liste. Hvis en liste inneholder dager i uken (søndag, mandag, tirsdag, onsdag, torsdag, fredag og lørdag), kan du for eksempel velge alle, ingen eller alle varer.

For å fastslå hvilke elementer som er valgt, kan du bruke egenskap Selected listen. Egenskapen Selected for en liste er en matrise av verdier der hver verdi er Sann (Hvis elementet er merket) eller Usann (Hvis varen ikke er valgt).

Hvis listen inneholder sju dager i uken og søndag, tirsdag og lørdag er valgt, vil merkede egenskapens datatabell for eksempel inneholde følgende verdier:
SANN, USANN, SANN, USANN, USANN, USANN og SANN
Dette er viktig fordi det er merket av for det første elementet (søndag), det andre elementet (mandag) ikke er valgt, er merket av for det tredje elementet (tirsdag), fjerde til sjette elementene (onsdag, torsdag og fredag) ikke er valgt og sjuende elementet (lørdag) er valgt.

Eksempel på Visual Basic-prosedyre

Følgende makrokode gir to metoder for å bruke de merkede dataene fra listen. Den første metoden bruker et valgt element om gangen, og den andre metoden bygger en liste over alle valgte elementer.

Obs! Disse trinnene for å opprette en UserForm i Visual Basic-redigering forutsetter at du har en forståelse av Visual Basic for Applications, Microsoft Word og Microsoft Forms-utforming og verktøy.
  1. Start Visual Basic-redigering. Hvis du vil gjøre dette, trykker du ALT + F11.
  2. Hvis dialogboksen Egenskaper ikke er synlig, klikker du EgenskaperVis -menyen.
  3. Hvis Project Explorer-vinduet ikke er synlig, klikker du
    ProsjektutforskerVis -menyen.
  4. Klikk på Sett inn -menyen
    Brukerskjema.
  5. Velg liste på den
    Kontroller verktøykassenog dra den deretter til Brukerskjema.
  6. I vinduet Egenskaper for Liste1 endre egenskapen MultiSelect til verdien 1 - fmMultiSelectMulti .
  7. Klikk CommandButton -kontroll på den
    Kontroller verktøykassen, og deretter drar den til UserForm å plassere CommandButton1 kontrollere på UserForm.
  8. Gjenta trinn 7 for å legge et sekund
    CommandButtonBrukerskjema. Dette plasserer det
    CommandButton2 -kontroll i et Brukerskjema.
  9. Dobbeltklikk UserForm for å vise vinduet kode for Brukerskjema.
  10. Trykk PgDn, og skriv deretter inn følgende makrokode for Userform_Initialize og CommandButton_Click -hendelser:
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