VBA – Programmierung mit Excel Grundlagen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Seite 106<br />
Dialoge (Teil II)<br />
12.7 Selbstdefinierte Dialoge - UserForm<br />
Die Nachteile eines im Tabellenblatt untergebrachten Formulars, insbesondere seine<br />
Veränderbarkeit durch Benutzer, lassen sich durch die Verwendung von Dialogen<br />
ausschließen. Dialoge erlauben keinen Zugriff auf ein Tabellenblatt, solange sie aktiv sind.<br />
An dieser Stelle soll nur in kurzer Form auf die Entwicklung eines benutzerdefinierten<br />
Dialogs eingegangen werden. Für weitergehende Informationen zum Aufbau und Definition<br />
sei auf die Broschüre URZ/B009 verwiesen.<br />
Für den Aufbau eines Userdialogs wird in der <strong>VBA</strong> <strong>–</strong> Entwicklungsumgebung über die<br />
Funktionskombination EINFÜGEN / USERFORM ein leeres Dialogformular erzeugt. Gleichzeitig<br />
wird die für dem Formularaufbau benötigte Werzeugsammlung eingeblendet:<br />
Abbildung 44: <strong>VBA</strong> - Dialogfenster<br />
<strong>mit</strong> Werkzeugsammlung<br />
Der Dialog wird ähnlich wie die bisher beschriebenen, in Tabellenblättern untergebrachten,<br />
Formulare aufgebaut (Steuerelement aus der Werkzeugsammlung in Formular ziehen,<br />
Eigenschaften über das Eigenschaftsfenster definieren).<br />
12.7.1 Beispiel 1<br />
Das nachfolgende kleine Beispielformular wurde aus einem Textfeld und zwei Schaltflächen<br />
aufgebaut. Es soll die Aufgabe erfüllen, den eingegebenen Wert eines MwSt <strong>–</strong> Satzes in die<br />
Zelle eines Tabellenblattes einzufügen:<br />
Abbildung 45: Einfacher <strong>VBA</strong>-Dialog<br />
Die Funktionalität wird durch Prozeduren (wie bei bisherigen Anwendungen) gewährleistet.<br />
Es Ergibt sich jedoch ein wesentlicher Unterschied <strong>–</strong> ein Formular im Tabellenblatt ist <strong>mit</strong><br />
dem Tabellenblatt immer sichtbar (es sei denn, das Tabellenblatt wird ausgeblendet), eine<br />
UserForm muß explizit eingeblendet werden. Dies geschieht durch die Anweisung:<br />
Private Sub Anfang()<br />
Eingabe1.Show<br />
End Sub<br />
(hier in einer eigenen Sub untergebracht).<br />
Die obige UserForm ist so konzipiert, das sobald nach dem Einblenden die Maus innerhalb<br />
der Form bewegt wird, das Eingabefeld den Focus erhält (aktiviert wird), dami die Eingabe<br />
möglich wird, ohne daß dieses Feld angeklickt werden muß.