Gennemløb af kontrolelementer på en formular
Når man programmerer i Excel VBA er formularer (Userforms) et nyttigt værktøj til at få input fra brugeren. Når brugeren klikker OK for at lukke formularen, er det som regel nødvendigt at kontrollere alle input. Hvis der er mange kontrolelementer på formularen, kan det være et stort arbejde, og mange bruger at kontrollere alle kontrolelementerne ét for ét.
Ofte er det meget nemmere at gennemløbe samtlige kontrolelementer med en løkke og så tage tilpasset aktion, alt efter typen af kontrolelement og brugerens input.
Det kan man gøre ved at benytte sig af, at alle kontrolelementer er medlemmer af formularens "kontrolsamling". Når man bruger en løkke til gennemløb, kan det være vigtigt at have styr på rækkefølgen, og den styres af rækkefølgen, hvormed man indsatte sine kontrolelementer.
"Tabindex" bestemmer rækkefølgen for, hvilket kontrolelement der får fokus, når man trykker på tabulatortasten. "Tabindex" kan ses og ændres i det enkelte kontrolelements properties vindue.
Her følger et eksempel på gennemløb, som udløses, når brugeren klikker på OK-knappen. Et regneark med flere konkrete eksempler på gennemløb af kontrolelementer, kan downloades her. Regnearket demonstrerer også, hvordan man kan skelne mellem talværdier og tekst, som er indsat i tekstbokse.
Private Sub CommandButton1_Click()
Dim cCtl As Control
On Error GoTo ErrorHandle
For Each cCtl In Me.Controls
If TypeOf cCtl Is MSForms.CheckBox Then
If cCtl.Value = True Then
End If
End If
If TypeOf cCtl Is MSForms.TextBox Then
End If
If TypeOf cCtl Is MSForms.OptionButton Then
End If
Next
Exit Sub
ErrorHandle:
MsgBox Err.Description
End Sub
Relateret
|