FAQ 0088: Welcher Optionbutton ist ausgewählt?
von Helge Rex
Frage
Welcher Optionbutton ist ausgewählt?
separate Funktion
Folgende Funktion wurde von pks gepostet und setzen voraus, daß die Optionbuttons als Steuerelementefeld angelegt wurden:
Public Function OptionbuttonIndex(optButtons As Object) As Integer Dim i As Long For i = optButtons.LBound To optButtons.UBound If optButtons(i).Value Then OptionbuttonIndex = i Exit Function End If Next OptionbuttonIndex = -1 End Function
Listing 1: Index mittels Funktion ermitteln
MsgBox "Option1(" & CStr(OptionButtonIndex(Option1)) & ") ist markiert."
Listing 2: Beispiel-Aufruf der Funktion
zusätzliche Variable
Man kann den Index des ausgewählten Optionbuttons in eine zusätzliche Variable schreiben.
Hier ist allerdings nachteilig, daß man für jedes OptionbuttonFeld eine eigene Variable benötigt.
Private lngOptionIndex As Long Private Sub Option1_Click(Index As Integer) lngOptionIndex = Index End Sub
Listing 3: Index mittels Variable ermitteln
MsgBox "Option1(" & CStr(lngOptionIndex) & ") ist markiert."
Listing 4: Beispiel-Aufruf mit Variable
zusätzliches Steuerelement
Häufig werden solcherlei Auswahlmöglichkeiten in einem zusätzlichen Steuerelement (meist in einem Frame) untergebracht, um allen Optionbuttons eine gemeinsame Überschrift zu geben und sie zu gruppieren.
Benötigt man bei diesem Steuerelement die Eigenschaft .Tag nicht, kann man den Index des ausgewählten Optionbuttons auch hierin speichern.
Private Sub Option1_Click(Index As Integer) Frame1.Tag = CStr(Index) End Sub
Listing 5: Index mittels Steuerelement ermitteln
MsgBox "Option1(" & Frame1.Tag & ") ist markiert."
Listing 6: Beispiel-Aufruf mit Steuerelement
Ihre Meinung
Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.