VBATools

FM20 – OptionButton

OptionButton to kontrolka ActiveX z zestawu biblioteki FM20 (standardowy przybornik) dla kompilacji Office 32/64 bit.

Kontrolka OptionButton często nazywana również RadioButton służąca do określenia wyboru opcji zależnych między sobą (zaznaczenie jednej kontrolki wyklucza zaznaczenie kolejnych).

Obrazek

Aby uatrakcyjnić funkcjonalność kontrolki jest możliwość umieszczenia zdjęć Picture w obszarze opisowej oraz przypisać skrót klawiaturowy Accelerator powołując się na literę znajdująca się w opisie [LAlt].

Obrazek

Do grupy OptionButtonów można przypisywać nazwy, tworząc odrębne grupy pól wyboru. Podobną możliwość dane kontrolka Frame, ale nie koniecznie. Można poradzić sobie korzystając z parametru GrupName. Jak to wygląda w praktyce: (poniżej 4 kontrolki przywiązane są nazwą Grupa1, 3 następne Grupa2).

Obrazek

Spróbujmy wzbogacić pokazany pow. ekran dokładając przycisk i sprawdzić kodem w pętli które z kontrolek mają wartość Value = True oraz wykazać w konkretnej grupie którą opcję wybrano:

Obrazek
Private Sub CommandButton1_Click() 
Dim OptionB As msforms.Control 'zmienne oobiektowe kontrolek 
Dim t1$, t2$, t3$ 'zmienne tekstowe 
 For Each OptionB In Me.Controls 
   If TypeName(OptionB) = "OptionButton" Then 'sprawdzenie czy obiekt jest kontrolką OB 
     If OptionB Then t1 = t1 & vbNewLine & OptionB.Caption 'pobranie nazwy jeśli zaznaczono 
     If OptionB And OptionB.GroupName = "Grupa1" Then t2 = OptionB.Caption 'j.w ale w grupie 
     If OptionB And OptionB.GroupName = "Grupa2" Then t3 = OptionB.Caption 
   End If 
 Next 
 MsgBox "Zaznaczono: " & t1 & vbCr & vbCr & _ 
   "Z grupy 1: " & t2 & vbCr & _ 
   "Z grupy 2: " & t3, vbInformation, "VBATools.pl" 'zwrot wartości zmiennych w komunikacie 
End Sub

Jeśli uważasz że pokazane materiały są godne polecenia – podziel się tą wiadomością z innymi pozostawiając odnośnik to tego materiału.

(c) Shon Oskar – http://VBATools.pl
Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.