Steuerelemente und Formulare

Für den Nutzer einer Sub Prozedur ist es oft aufwändig, für den Start der Prozedur immer den Makro-Befehl oder den Visual Basic Editor aufzurufen. Es ist aber möglich Steuerelemente in ein Excel-Tabellenblatt aufzunehmen, beispielsweise einen Button. Mit einem Klick auf den Button lässt sich die Prozedur starten.

Aufruf der Steuerelement Toolbox:
Zunächst das gewünsche Excel Tabellenblatt auswählen. Mit einem Klick auf den Reiter „Entwicklertools“ und dann auf die Schaltfäche „Einfügen“ werden alle Steuerelemente angezeigt.

Es werden zwei Steuerelementarten angezeigt: Formularsteuerelemente und ActiveX-Steuerelemente. Wenn man mit der Maus auf ein Steuerelement fährt ohne zu klicken, erscheint ein kleines Informationsfenster mit der Bezeichnung des Steuerelements.

Formularsteuerelemente sind die ursprünglichen Steuerelemente, die mit früheren Excel Versionen kompatibel sind. Formularsteuerelemente und ActiveX-Steuerelemente unterscheiden sich in der Art der Makro-Anbindung. Bei ActiveX-Steuerelementen gibt es mehr Formattierungsmöglichkeiten wie bei Formularsteuerelementen. Sowohl Formularsteuerelementen als auch ActiveX Steuerelemente können in ein Excel Tabellenblatt eingefügt werden. ActiveX Steuerelemente zusätzlich auch in sogenannte UserForms eingefügt werden.

Für Benutzer kann das Starten eines Makros erleichtert werden, indem ihnen für das Ausführen eines VBA Makros eine Formularsteuerelement „Schaltfläche“ (engl. button) in einem Excel Tabellenblatt zur Verfügung gestellt wird.

Einfügen des Steuerelements

Man geht wie folgt vor:

  • auf das Symbol links oben für das Formularsteuerelement „Schaltfäche“ klicken.
  • mit dem Mauszeiger auf die gewünschte Zelle im Tabellenblatt klicken. Es erscheint ein kleines Kreuz. Die linke Maustaste drücken und gedrückt halten und damit das Formularsteuerelement „Schaltfläche“ auf die gewünschte Größe aufziehen. Dann die linke Maustaste los lassen.
  • Es öffnet sich Dialogfeld „Makro zuweisen“. Hier das gewünschte Makro anklicken und mit einem Klick auf OK bestätigen.

Umbenennen des Steuerelements:

Zum Umbennen des Steuerelements klickt man mit der rechten Maustaste auf das Steuerelement. Im Pop-Up Menü auf „Text bearbeiten“ klicken.

Formattieren des Steuerelements:

Klickt man stattdessen auf „Steuerelement formatieren“ lässt sich das Format des Steuerelements anpassen.

Durch einen Klick auf das neu erstellte Formularsteuerelement „Schaltfläche“ kann nun das VBA Makro gestartet werden. Es empfiehlt sich, das VBA Makro so zu gestalten, dass es Daten aus dem Excel Tabellenblatt einliest und nach der Verarbeitung wieder im Tabellenblatt ausgibt.

ActiveX Steuerelemente

Auch hier wird als Beispiel das Vorgehen beim Einfügen einer „Befehlsschaltfläche“ gezeigt.

Einfügen des Steuerelements:

  • auf das ActiveX Steuerelement „Befehlsschaltfäche“ klicken.
  • mit dem Mauszeiger auf die gewünschte Zelle im Tabellenblatt klicken. Es erscheint ein kleines Kreuz. Die linke Maustaste drücken und gedrückt halten und damit das ActiveX Steuerelement „Befehlsschaltfläche“ auf die gewünschte Größe aufziehen. Dann die linke Maustaste los lassen.
  • Nach dem Einfügen des ActiveX Steuerelement „Befehlsschaltfläche“ wird automatisch der Entwurfsmodus aktiviert. Das lässt sich dadurch erkennen, dass im Menü „Entwicklertools“ die Schaltfläche „Entwurfsmodus“ als aktiv markiert wird.

Umbenennen des Steuerelements:

Zum Umbennen des Steuerelements klickt man mit der rechten Maustaste auf das Steuerelement. Im Pop-Up Menü auf „Befehlsschaltfläche-Objekt“ und dann auf „Bearbeiten“ klicken. Das ist allerdings nur im Entwurfsmodus möglich. Wenn die Schaltfläche „Entwurfsmodus“ nicht als aktiv markiert sein sollte, dann auf die Schaltfläche „Entwurfsmodus“ klicken.

Formattieren des Steuerelements:

Klickt man stattdessen auf „Steuerelement formatieren“ lässt sich das Format des Steuerelements anpassen.

Code anzeigen:

Durch Klick auf „Code anzeigen“ wird der VBA-Code für die Schaltfläche angezeigt. In diese Prozedur werden alle Anweisungen eingefügt, die ausgeführt werden sollen, wenn die Schaltfläche im Ausführungsmodus angeklickt wird.

Formulare (engl. UserForm)

In VBA können auch Formulare für den Dialog mit dem Anwender erstellt werden. Im Visual Basic Editor gibt es in der Menüleiste unter „Einfügen“ die Möglichkeit „UserForm“ auszuwählen.

Klickt man auf „UserForm“ wird in das Code Fenster des Visual Basic Editors ein neues Formular mit dem Namen „UserForm1“ eingefügt. Außerdem wird das Fenster „Toolsammlung“ mit den vorhandenen Steuerelementen eingeblendet. In dem Projekt Explorer erscheint ein Verzeichnis „Formulare“ in das der Eintrag „UserForm1“ eingefügt wird.

Beispiel: Formular zur Berechnung des Quadrats einer Zahl erstellen.
Die Schritte sind wie folgt

  • Im Eigenschaftsfenster des Formulars (UserForm), unter der Eigenschaft Caption den Text „Berechnung des Quadrats einer Zahl“ eintragen
  • Durch Anklicken und Ziehen mit der Maus werden nacheinander folgende Steuerelemente auf dem Formular eigefügt. Jeweils zwei Beschriftungsfelder, Textfelder und Befehlsschaltflächen.
  • Unter der Eigenschaft Caption der Beschriftungsfelder und Befehlsschaltflächen werden die gewünschten Bezeichnungen eingetragen.
  • Für alle Steuerelemente auf dem Formular wird in der Eigenschaft Font die Schriftgröße auf 12 geändert.
  • Die Eigenschaft (Name) der Textfelder wird wie folgt geändert. Das Textfeld für die Zahl erhält den Namen tbxZahl und das Textfeld für das Quadrat den Namen tbxQuadrat.
  • Die Befehlsschaltflächen erhalten die Namen cmdBerechnen und cmdVerlassen.
  • Mit einem Doppelklick auf die jeweilige Befehlsschaltfläche schaltet der Visual Basic Editor in die Codedarstellung um. Durch Klick auf „UserForm1“ erhält man wieder das Formular.
  • Das Codefenster zeigt die (noch leeren) Prozeduren cmdBerechnung_Click bzw. darunter cmdEnde_Click. Diese Prozeduren erhalten die nachfolgend dargestellten Anweisungen.
Private Sub cmdBerechnen_Click()
Dim dZahl As Double
Dim dQuadrat As Double
dZahl = Val(tbxZahl)
dQuadrat = dZahl * dZahl
tbxQuadrat = Str(dQuadrat)
tbxZahl.SetFocus
End Sub

Private Sub cmdVerlassen_Click()
Unload Me
End Sub

Danach ist ein Test der Prozeduren möglich:
– In der Menüzeile des Visual Basic Editors die Registerkarte „Ausführen“ und darin „Sub/UserForm ausführen“ wählen. Dadurch wird das Formular eingeblendet.
– Im Textfeld für die Zahl einen beliebigen Wert eingeben.
– Mit einem Mausklick auf die Schaltfläche Berechnen erscheint das Ergebnis im Textfeld Quadrat.
– Das lässt sich beliebig oft wiederholen.
– Mit der Schaltfläche Verlassen wird das Formular gelöscht.

Dieser Beitrag hat 3 Kommentare

  1. Alois

    Hallo
    Was bedeutet in dem Code val vor der Textbausteine Zahl

    danke

    1. admin

      Hallo Alois,
      vielen Dank für Deinen Kommentar. Im Beispiel wird in die Textbox „Zahl“ eine Zahl eingegeben. Die Zahl wird von der Textbox aber als eine Zeichenfolge vom Typ String interpretiert. Im Code wird die Zahl in der Zeichenfolge mit der Funktion „Val“ in einen numerischen Wert umgewandelt und der Variablen dZahl vom Typ Double zugewiesen.
      In der Microsoft Hilfe steht ein interessanter Hinweis zur Funktion „Val“. „Die Val-Funktion erkennt nur den Punkt ( . ) als gültiges Dezimaltrennzeichen. Wenn verschiedene Dezimaltrennzeichen verwendet werden, wie in internationalen Anwendungen, verwenden Sie stattdessen CDbl, um eine Zeichenfolge in eine Zahl umzuwandeln.“
      Hilft Dir meine Antwort?

  2. Alois

    Hallo
    Alles prima von dir kann ich noch sehr viel lernen denn aller Anfang ist schwer
    Gruß und schönes we

Schreibe einen Kommentar