Autor: Beate Schmitz  --- Aus Excel VBA - Gruppe: Grundlagen

Makro einer Schaltfläche zuweisen

Autor: Beate Schmitz - Erstellt: 2007-03      - Letzte Revision: --

Wie weist man einer Schaltfläche ein Makro zu?
(Inklusive Formatierung von Schaltflächen)


Nachdem Sie sich ein Makro mit dem Makrorekorder aufgezeichnet oder in ein Modul kopiert haben, möchten Sie dieses einer Schaltfläche zuordnen, um das Makro jederzeit durch Anklicken der Schaltfläche starten zu können.

Wenn Sie die Schalfläche in den fixierten Fensterbereich legen, erreichen Sie diese jederzeit problemlos. Oder Sie positionieren die Schaltfläche an der Stelle, wo Sie es regelmäßig benutzen werden. Sie können Makros zuweisen entweder aus:
  • dieser (also der aktiven) Arbeitsmappe
  • aus allen offenen Arbeitsmappen
  • oder aus der Datei Personl.xls
Excel stellt uns verschiedene Schaltflächentypen zur Auswahl, die ich Ihnen hier vorstelle und die Zuweisung anhand dieses Makros erkläre, welches in einem Modul der aktiven Arbeitsmappe liegt (fügen Sie es sich zu Testzwecken in eine leere Arbeitsmappe ein):
Sub Makro1()
	MsgBox "Hallo"
End Sub

Es gibt folgende Alternativen: Sollte die gewünschte Symbolleiste gerade nicht sichtbar sein, können Sie diese so einblenden: Gehen Sie über Menü > Ansicht > Symbolleisten... und haken Sie die gewünschte Symbolleiste an.

Zum Blattanfang

Schaltfläche aus der Symbolleiste Zeichnen

Diese Symbolleiste stellt Ihnen die größte Bandbreite an Gestaltungsmöglichkeiten für Schaltflächen zur Verfügung. Sie können wählen zwischen Autoformen, Rechteck, Ellipse, Textfeld oder sogar Word Art (der von Ihnen eingegebene Text wird dann gleichzeitig als Schaltfläche genutzt).

Zum Einfügen klicken Sie die gewünschte Schaltfläche auf der Symbolleiste an, die Maus verwandelt sich in ein schmales Kreuz und ziehen Sie die Schaltfläche mit der Maus in gewünschter Größe an gewünschter Stelle auf.

Formatieren können Sie die Schaltfläche, wenn Sie diese am Rand mit rechts anklicken (dadurch wird die Schaltfläche markiert), springt ein Dialogfenster auf, wählen Sie dort: AutoForm formatieren..... Es öffnet sich ein weiteres Dialogfenster mit verschiedenen Registern, unter denen Sie Schrift, Ausrichtung, Farben und Linien, Größe, Schutz, Eigenschaften und Abstände einstellen können. Den Variationsmöglichkeiten sind kaum Grenzen gesetzt.

Schauen Sie sich unter den einzelnen Registern die Einstellmöglichkeiten an, sie sind soweit selbstredend. Erwähnenswert ist: Wenn Schaltflächen nicht im Ausdruck sichtbar sein sollen, können Sie unter dem Register Eigenschaften abhaken, dass das Objekt nicht gedruckt werden soll, standardmäßig würde es mitgedruckt.

Die Größe der Schaltfläche können Sie auch verändern, indem Sie diese am Rand mit rechts anklicken und mit der Maus, die sich bei Berührung der Anfasspunkte in einen Doppelpfeil verändert, bei gedrückter linker Maustaste auf die gewünschte Größe ziehen.

Verschieben können Sie die Schaltfläche, indem Sie ebenfalls mit der rechten Maustaste auf den Rand klicken und einen Eckpunkt berühren. Dann ändert sich der Mauszeiger in ein Kreuz mit Pfeilen und mit gedrückter linker Maustaste packen Sie die Schaltfläche und schieben Sie an den gewünschten Platz.

Text eingeben können Sie, indem Sie ins Innenfeld der Schaltfläche klicken; wenn der Cursor dort blinkt, können Sie den gewünschten Text eintippen.

Kopieren können Sie Schaltflächen, wenn Sie diese am Rand mit rechts anklicken; es springt ein Dialogfenster auf, wählen Sie dort: Kopieren. Markieren Sie nun eine Zelle am Zielplatz der Kopie, drücken die rechte Maustaste und wählen im Dialogfenster Einfügen.

Löschen können Sie Schaltflächen, wenn Sie diese am Rand mit rechts anklicken; es springt ein Dialogfenster auf, wählen Sie dort: Ausschneiden. Und so weisen Sie der neuen Schaltfläche das Makro zu:
  • klicken Sie die Schaltfläche am Rand mit rechts an; es springt ein Dialogfenster auf, wählen Sie dort: Makro zuweisen....
  • der entsprechende Dialog öffnet sich
  • wählen Sie aus: Makros in: Diese Arbeitsmappe
  • oberhalb wird Ihnen nun unser Beispielmakro Makro1 zur Auswahl angeboten
  • klicken Sie dieses an, so dass es blau unterlegt ist
  • klicken Sie auf die Schaltfläche OK, damit schließt sich das Dialogfenster und das Makro ist zugewiesen
  • zu Testzwecken klicken Sie nun auf Ihre Schaltfläche; das Makro sollte anspringen

Zum Blattanfang

Schaltfläche aus der Symbolleiste Formular

Hier sind die Gestaltungsmöglichkeiten begrenzter. Die Schaltflächen sind immer ein graues Viereck. Zum Einfügen klicken Sie auf der Symbolleiste das Icon Schaltfläche an. Die Maus verwandelt sich in ein schmales Kreuz und ziehen Sie die Schaltfläche mit der Maus in gewünschter Größe an gewünschter Stelle auf.

Formatieren können Sie die Schaltfläche, wenn Sie diese mit rechts anklicken (dadurch wird die Schaltfläche markiert), springt ein Dialogfenster auf, wählen Sie dort: Steuerelement formatieren..... Es öffnet sich ein weiteres Dialogfenster mit verschiedenen Registern, unter denen Sie, Ausrichtung, Schrift (auch farbig), Größe, Schutz, Eigenschaften und Abstände einstellen können.

Schauen Sie sich unter den einzelnen Registern die Einstellmöglichkeiten an, sie sind soweit selbstredend. Erwähnenswert ist: Wenn Schaltflächen nicht im Ausdruck sichtbar sein sollen, können Sie unter dem Register Eigenschaften abhaken, dass das Objekt nicht gedruckt werden soll, standardmäßig würde es mitgedruckt.

Alle anderen Möglichkeiten inkl. der Makrozuweisung sind identisch wie bei einer Schaltfläche der Symbolleiste Zeichnen.

Zum Blattanfang

Befehlsschaltfläche aus der Symbolleiste Steuerelemente Toolbox

Diese Schaltflächen werden eingesetzt, wenn man Makros aus dem Codefenster der Tabelle aufrufen will. Aus diesem Makro heraus können wir aber dann auch Makros aus Modulen gemäß unserem Beispiel aufrufen. Das folgt später. Sie sind ebenfalls viereckig, aber freier formatierbar als die Schaltflächen aus der Symbolleiste Formular.

Zum Einfügen klicken Sie auf der Symbolleiste das Icon Befehlsschaltfläche an. Die Maus verwandelt sich in ein schmales Kreuz und ziehen Sie die Schaltfläche mit der Maus in gewünschter Größe an gewünschter Stelle auf.

Wenn wir Eigenschaften der Schaltfläche bearbeiten wollen oder ein Makro zuweisen möchten, muss in den Entwurfsmodus gewechselt werden! Klicken Sie dazu auf das grüne Geodreieck links in der Symbolleiste. Der Mauszeiger verwandelt sich in ein Kreuz. Nach Beendigung dieser Maßnahmen müssen Sie wieder auf das Icon klicken, um den Entwurfsmodus zu verlassen! Ein Makro kann nicht im Entwurfsmodus aufgerufen werden.

Im Entwurfsmodus können Sie Schaltfläche formatieren, indem Sie diese mit der rechten Maustaste anklicken und im sich öffnenden Dialog Eigenschaften auswählen.

Das Eigenschaftsfenster öffnet sich, in dem Sie alle gewünschten Einstellungen vornehmen können. Guckst Du: Commandbutton - Eigenschaften. Hier kurz das Wichtigste:
  • ganz oben sehen Sie, die Schaltfläche hat den Namen CommandButton1 - dies wird uns im Codefenster wieder begegnen. Hat man mehrere dieser Schaltflächen im Tabellenblatt zählt Excel die Namen hoch. So lässt sich nachvollziehen, welches Makro zu welcher Schaltfläche gehört
  • die Beschriftung der Schaltfläche nehmen Sie unter Caption vor
  • standardmäßig werden die Schaltflächen mitgedruckt. Wenn Sie das nicht möchten, setzen Sie PrintObject auf False
  • setzen Sie die TakeFocusOnClick-Eigenschaft auf False! Hier die Begründung: Probleme im Tabellenblatt
  • nach Beendigung Ihrer Einstellungen verlassen Sie das Eigenschaftsfenster durch Klick auf das Schließkreuz oben rechts
Und so weisen Sie der neuen Schaltfläche das Makro zu:

  • Sie befinden sich immer noch im Entwurfsmodus
  • und klicken mit der rechten Maustaste auf die Schaltfläche
  • ein Dialog öffnet sich und Sie wählen aus: Code anzeigen
  • es öffnet sich die VBA-Entwicklungsumgebung im Codefenster der aktiven Tabelle
  • Sie sehen dort in der rechten Fensterhälfte dieses "leere" Makro:
Private Sub CommandButton1_Click()
	
End Sub

Aus diesem Makro heraus wollen wir unser Makro1 aufrufen, welches in einem Modul liegt. Schreiben Sie deshalb nur den Makronamen in das Makro:
Private Sub CommandButton1_Click()
	Makro1
End Sub

Gleiches erreichen Sie unter Verzicht auf das Makro1 im Modul, indem Sie direkt den Code von Makro1 in das CommandButton1_Click-Makro schreiben würden. Aber wenn Makro1 ein vielseits genutztes Makro ist, ist diese Methode des Aufrufs sehr vorteilhaft, weil man bei Änderungen nur Makro1 ändern muss.
  • verlassen Sie Visual Basic mit der Tastenkombination Alt + F4
  • nun befinden Sie sich wieder im Tabellenblatt
  • verlassen Sie den Entwurfsmodus
  • zu Testzwecken klicken Sie nun auf Ihre Schaltfläche; das Makro sollte anspringen
Wenn Sie sich im Entwurfsmodus befinden, können Sie die Schaltfläche verschieben, die Größe verändern, kopieren oder löschen wie für die Schaltfläche der Symbolleiste Zeichnen beschrieben.

Einen Zeilenumbruch in der Schaltflächenbeschriftung erhalten Sie, indem die Schaltfläche im Entwurfsmodus mit rechts anklicken und im sich öffnenden Dialogfenster Befehlsschaltfläche-Objekt > Bearbeiten auswählen. Nun können Sie den Cursor in den Text setzen, den Sie so auch bearbeiten können. Den Zeilenumbruch erreichen Sie, wenn Sie den Cursor an die gewünschte Stelle setzen und die Tastenkombination Umschalt+Enter ausführen.

Denken Sie aber daran, danach den Entwurfsmodus wieder zu beenden!


Weitere Artikel der Gruppe: Grundlagen Aus Excel VBA
Nach oben