Microsoft Office Tutorials and References
In Depth Information
13.6.6
Optimierte Ereignisse mit ControlGroup-Klasse
Auf der einen Seite eröffnet es uns sehr flexible Möglichkeiten, dass jedes Steuer-
element einer Userform eigene Ereignisse hat, auf die individuell reagiert werden
kann. Andererseits kann es auch nervig sein, wenn Sie eine Vielzahl gleichartiger Ele-
mente haben, die auf bestimmte Ereignisse nahezu identisch reagieren sollen. Dann
müssen Sie nämlich für jedes Steuerelement ein separates Ereignis definieren. Bei
unserer Userform trifft dieser Umstand auf die Optionsfelder der Zielgröße zu. Die
Ereignisprozedur lautete:
Private Sub optOutput1_Click()
txb_Output = 1
End Sub
… und das Ganze fünfmal für jedes Optionsfeld. Fünf sind noch zumutbar, aber stel-
len Sie sich fünfzig Optionen mit fünfzig Ereignissen vor. Und wenn dann je Steuer-
element nicht nur ein, sondern eine Handvoll Ereignisse Code auslösen sollen, wird
die Schar an Ereignisprozeduren enorm groß.
Nun ist es möglich, eine Objektklasse zu programmieren, die eine Auflistung von
Steuerelementen anspricht, und alle Mitglieder der Auflistung reagieren auf die ein-
mal definierte Ereignisprozedur gleichermaßen.
Erzeugen Sie über den Menübefehl Einfügen>Klassenmodul ein Klassenmodul, und
bezeichnen Sie es als clsOptionsbuttons . Im Eigenschaftenfenster ( (F4) ) können Sie
dies einstellen. In das Modul schreiben Sie den Code:
'clsOptionsbuttons
Public WithEvents Zielgröße As MSForms.OptionButton
Private Sub Zielgröße_Click()
UserForm1.txb_Output = CLng(Right(Zielgröße.Name, 1))
End Sub
Das Userform-Modul unseres Zinsrechners passen Sie wie folgt an:
'Userform1
Private optButtons() As New clsOptionbuttons
... kommt in den Deklarationsteil von UserForm1 . Am Ende des Moduls ergänzen Sie
folgende Prozedur:
Search JabSto ::




Custom Search