Layout-Steuerelemente auf UserForms verwenden
Geben Sie einem UserForm in Excel oder Word eine Navigationsliste, einen Hauptbereich und einen Detailstreifen, die
der Größe des Formulars folgen und deren Größe der Benutzer ändern kann – ohne Code in UserForm_Resize.
Voraussetzungen: WKL Forms Object Library 1.23 oder höher.
Lösungsüberblick
WklDockLayout und WklSplitter funktionieren auf UserForms (MSForms) wie auf Access-Formularen. Das Andocklayout
überwacht das Fenster des UserForms selbst, weil MSForms kein Steuerelement mit seinem Formular in der Größe ändert. Die
Trennleiste bittet MSForms, sie zu aktivieren, sobald die Maus sie erreicht, sodass bereits der erste Druck zieht.
Größen sind in beiden Hostanwendungen Twips (1 Punkt = 20 Twips); die Anordnung wird in der Registrierung des aktuellen
Benutzers gespeichert.
Umsetzung
Wählen Sie im Visual Basic-Editor Extras › Zusätzliche Steuerelemente, aktivieren Sie WKL Dock Layout (und bei
Bedarf WKL Splitter); beide erscheinen in der Werkzeugsammlung. Zeichnen Sie die Bereiche – zum Beispiel ListBox1
am linken Rand, ListBox3 am unteren Rand, ListBox2 im Rest –, zeichnen Sie dann das Andocklayout darüber, nennen
Sie es Layout1 und wählen Sie Format › Reihenfolge › In den Hintergrund.
Mehr ist nicht nötig: Mit FillSection (Standardwert) nimmt das Layout das Innere des UserForms ein, findet die drei
Listenfelder über ihre Position und folgt jeder Größe des Formulars – auch wenn Code Width und Height des
Formulars setzt, wie unten. Code arbeitet direkt mit dem Steuerelement, ohne .Object:
Private Sub UserForm_Initialize()
Me.Width = 600 ' points
Me.Height = 400
Me.Layout1.LayoutKey = "Bestellungen.Layout1" ' the same form name in another document stays apart
End Sub
Private Sub cmdDefault_Click()
Me.Layout1.Reset
End Sub
Hinweise
- Ist
FillSectionausgeschaltet, behält das Layout den Abstand zum rechten und unteren Rand des UserForms bei, den es beim ersten Anzeigen des Formulars hatte. - MSForms platziert Steuerelemente auf ganzen Pixeln, daher kann eine Kante um bis zu 0,75 Punkt vom berechneten Punktwert abweichen.
- Die Anordnung wird unter
HKEY_CURRENT_USER\Software\The White Knight Labs\Access Framework\Layoutsgespeichert, ein Wert jeLayoutKey; der Standardschlüssel lautet „UserForm-Name.Steuerelementname“. - Excel fragt beim Öffnen der Arbeitsmappe möglicherweise, ob die ActiveX-Steuerelemente des UserForms aktiviert werden sollen.
- Nach einem Update der WKL Forms Object Library lässt sich ein in dieser Version neuer Member auf einem UserForm eines bereits zuvor verwendeten Dokuments unter Umständen nicht kompilieren; siehe „Methode oder Datenobjekt nicht gefunden“ für ein Steuerelement auf einer UserForm.
- F6 zwischen den Bereichen funktioniert nur auf Access-Formularen. Die Tastatur von Leiste und Streifen (Tabulator, Pfeiltasten, Eingabetaste) und ihre UI Automation werden auf Access-Formularen unterstützt; auf UserForms werden sie nicht unterstützt.