30.09.2013 Aufrufe

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ß.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!