VBA-Schaltfläche in Excel hinzufügen
In this Article
In diesem Tutorial zeigen wir Ihnen, wie Sie eine Makro-Schaltfläche in Excel-VBA hinzufügen können.
Nachdem wir Makros in Excel erstellt haben, ist es manchmal nützlich, eine Schaltfläche im Excel-Arbeitsblatt zu erstellen, um das Makro auszuführen.
Da wir VBA verwenden, um UserForms in Excel zu erstellen, müssen wir auch in der Lage sein, Schaltflächen auf diesen Benutzerformularen zu erstellen, um die Operationen OK und Abbrechen durchzuführen. In diesem Tutorial zeigen wir Ihnen, wie Sie eine Makro-Schaltfläche zu einem VBA-Arbeitsblatt, ein Makro zu einer Form in VBA (im Gegensatz zu einer Schaltfläche) und eine Schaltfläche zu einem Benutzerformular im VBE-Editor hinzufügen können.
Eine Makro-Schaltfläche in ein Excel-Arbeitsblatt einfügen
Sobald wir ein Makro in Excel-VBA erstellt haben, können wir eine Schaltfläche auf dem Arbeitsblatt erstellen, um das Makro auszuführen.
Wählen Sie in der Menüleiste die Registerkarte Entwicklertools, falls sie sichtbar ist. Diese Registerkarte ist standardmäßig ausgeschaltet, so dass Sie sie einschalten müssen, um sie in der Menüleiste zu sehen.
Wenn die Registerkarte Entwicklertools in der Menüleiste nicht sichtbar ist, klicken Sie auf die Registerkarte Datei in der Menüleiste und gehen Sie zu Optionen. Aktivieren Sie in den Optionen unter „Menüband anpassen“ das Kontrollkästchen Entwicklertools.
Klicken Sie auf OK.
Die Registerkarte „Entwicklertools“ wird in der Hauptmenüleiste angezeigt.
Es gibt 2 Arten von Schaltflächen, die wir zu einem Excel-Blatt hinzufügen können. Eine Formularschaltfläche und eine ActiveX-Schaltfläche.
Hinzufügen einer Formularschaltfläche
Wählen Sie in der Menüleiste Entwicklertools > Einfügen > Formularsteuerelemente > Schaltfläche.
Klicken und ziehen Sie im Arbeitsblatt, um eine Schaltfläche zu erstellen. Sobald Sie die Maustaste loslassen, wird das Dialogfeld mit dem Titel „Makro zuweisen“ angezeigt.
Scrollen Sie nach unten, um 1) das Makro, das Sie der Taste zuweisen möchten, auszuwählen und 2) auf OK zu klicken.
Klicken Sie mit der rechten Maustaste auf die Schaltfläche und wählen Sie Text bearbeiten, um den Schaltflächentext zu ändern.
Geben Sie einen geeigneten Namen für die Schaltfläche ein und klicken Sie dann auf sie.
Klicken Sie auf die Schaltfläche, um das Makro auszuführen.
Um das Format der Schaltfläche zu ändern, klicken Sie darauf mit der rechten Maustaste und wählen Sie „Steuerelement formatieren“.
Wählen Sie die Formatoptionen aus, und klicken Sie auf OK.
Eine ActiveX-Schaltfläche hinzufügen
Die ActiveX-Schaltfläche ähnelt einer Formularschaltfläche, aber anstatt ihr ein vorhandenes Makro zuzuweisen, müssen wir Code hinter ihr Click-Ereignis schreiben. Sie hat auch viel mehr Eigenschaften als die Formularschaltfläche, was sie zu einem viel flexibleren Steuerelement macht.
Wählen Sie in der Menüleiste Entwicklertools > Einfügen > ActiveX-Steuerelemente > Befehlsschaltfläche.
Klicken und ziehen Sie in Ihrem Arbeitsblatt, um die Schaltfläche zu erstellen. Die Schaltfläche wird als eingebettete Befehlsschaltfläche angezeigt.
Um den Befehlsschaltflächennamen oder den angezeigten Text zu ändern, klicken Sie mit der rechten Maustaste auf die Befehlsschaltfläche und dann auf Eigenschaften.
Ändern Sie 1) den Namen der Schaltfläche, 2) die Beschriftung der Schaltfläche und 3) das Textformat wie gewünscht.
Um der Schaltfläche Code hinzuzufügen, klicken Sie darauf erneut mit der rechten Maustaste und wählen Sie Code anzeigen.
Dadurch wird das Click-Ereignis für die Schaltfläche im VBE-Editor automatisch erzeugt (Das Click-Ereignis ist das häufigste Ereignis für Befehlsschaltflächen und wird standardmäßig erstellt).
Geben Sie den gewünschten Code in das erstellte Ereignis ein.
Private Sub cmdTime_Click()
Dim strT As String
strT = Time()
MsgBox "Die aktuelle Uhrzeit ist " & strT
End Sub
Schließen Sie den VBE-Editor, um zu Ihrem Arbeitsblatt zurückzukehren.
Klicken Sie noch einmal auf Ihre neue Schaltfläche. Sie werden feststellen, dass das Makro nicht ausgeführt wird, aber die Schaltfläche wird ausgewählt. Das liegt daran, dass Sie beim Erstellen einer ActiveX-Schaltfläche automatisch in den Entwurfsmodus versetzt werden.
Um den Code hinter der Schaltfläche auszuführen, klicken Sie in der Menüleiste auf die Schaltfläche Entwurfsmodus, um diesen zu verlassen und klicken Sie dann auf die Schaltfläche.
Ein Makro zu einer Form in einem Excel-Arbeitsblatt hinzufügen
Wählen Sie in der Menüleiste Einfügen > Form.
Wählen Sie die Form aus der Dropdown-Liste aus und ziehen Sie dann mit gedrückter Maustaste im Excel-Arbeitsblatt, um die Form zu erstellen.
Klicken Sie mit der rechten Maustaste auf die Form und wählen Sie Makro zuweisen.
Wählen Sie das Makro aus, das Sie zuweisen möchten und klicken Sie auf OK.
Wenn Sie die Maus über die Form bewegen, sollte sich der Mauszeiger in eine kleine Hand verwandeln. Klicken Sie auf die Form, um das Makro auszuführen.
Befehlsschaltflächen zu VBA-Formularen hinzufügen
Die Erstellung von VBA-Benutzerformularen ist ein wichtiger Bestandteil der VBA-Programmierung. Damit können Sie eine professionell aussehende Benutzeroberfläche erstellen, um mit den Benutzern Ihrer VBA-Anwendung zu kommunizieren. Außerdem können Sie damit den Benutzer vollständig kontrollieren, was er in Ihrer Arbeitsmappe tut. Um zu erfahren, wie Sie UserForms in VBA erstellen können, klicken Sie hier.
Sobald ein Benutzerformular erstellt wurde und Steuerelemente dazu hinzugefügt wurden, können Schaltflächen hinzugefügt werden, um Funktionen wie OK und Abbrechen auszuführen.
Wählen Sie in der Toolsammlung das Steuerelement Befehlsschaltfläche aus und ziehen Sie dann in Ihrem Formular mit gedrückter Maustaste, um die Schaltfläche zu erstellen.
Ändern Sie mithilfe der Caption-Eigenschaft die Beschriftung der Befehlsschaltfläche in OK und setzen Sie die Accelerator-Eigenschaft auf „O“.
Der Zweck der Accelerator-Eigenschaft besteht darin, dass der Benutzer die Schaltfläche mit der Tastatur aktivieren kann. In diesem Fall würde Alt+O die Schaltfläche aktivieren.
Nachdem wir die Befehlsschaltfläche erstellt haben, können wir darauf doppelklicken, um den VBA-Code aufzurufen. Durch einen Doppelklick auf die Befehlsschaltfläche im Formular wird das Click-Ereignis für die Schaltfläche automatisch erstellt, da dies das Ereignis ist, das am häufigsten von Befehlsschaltflächen verwendet wird.
Wir können nun unseren entsprechenden VBA-Code in der erstellten Prozedur eingeben.