Office-2010-Tipp: Word 2010 automatisieren (Teil 3) – so erweitern Sie ein aufgezeichnetes Makro mit eigenen Funktionen

Makros in Word 2010 mit neuen Funktionen ausstattenEin mit dem Makro-Recorder aufgezeichnetes Word-Makro macht genau das, was Sie ihm beigebracht haben – nicht weniger aber auch nicht mehr. Die Script-Sprache Visual Basic kann ihre tatsächlichen Fähigkeiten aber erst zeigen, wenn Sie ein aufgezeichnetes Makro um zusätzliche Funktionen erweitern. Damit lässt sich die Arbeitsweise eines Makros deutliche komfortabler gestalten und Sie können die Funktionen sogar interaktiv steuern.

Im ersten Teil der Serie Word 2010 automatisieren haben Sie gesehen, wie man ein Makro aufzeichnet und mit einem Mausklick startet. Im zweiten Teil So passen Sie aufgezeichnete Makros individuell an haben wir gezeigt, wie sich ein Makro bearbeiten lässt und wie Sie einfache Anpassungen durchführen können. Das Beispielmakro zur Druckerumschaltung bedarf jedoch noch einiger Optimierungen. So ändert es über den Befehl „ActivePrinter“ dauerhaft den Windows-Standarddrucker, was sich auch auf andere Programme auswirkt. Außerdem startet die Ausgabe des Dokuments auf den Drucker sofort nach dem Start des Makros. Ein versehentlicher Klick auf die Makroschaltfläche kann daher leicht zu unerwünschten Ausdrucken führen.

So verbessern Sie ein aufgezeichnetes Makro mit neuen Funktionen

  1. Mit dem Befehl „ActivePrinter“ lässt sich in einen Word-Makro der Makros in Word 2010 individuell anpassenWindows-Standarddrucker ändern aber auch auslesen. Damit das Makro das Dokument auf den gewünschten Drucker ausgibt, danach aber wieder zum Standarddrucker zurückkehrt, muss das Makro den Namen des Standarddruckers zwischenspeichern. Um das Makro entsprechend zu ändern, öffnen Sie in Word 2010 den Visual Basic Editor über die Tastenkombination Alt + F11. Gehen Sie im Projekt-Explorer (einblenden mit Strg +R) auf „Normal, Module“ und öffnen Sie das Modul „NewMacros“ per Doppelklick.
  2. In dem von Ihnen aufgezeichneten Makro zum Wechseln des Druckers fügen Sie am Anfang die Zeile
    StandardDrucker = ActivePrinter

    Damit speichern Sie den Namen des Standarddruckers in der Variablen „StandardDrucker“. An das Ende schreiben Sie die Zeile

    ActivePrinter = StandardDrucker

    Damit setzt das Word-Makro den Standarddrucker wieder auf den Wert der Variablen, also den ursprünglichen Druckernamen.

    Das komplette Makro sieht danach so aus:

    Sub DruckerWechseln()
    StandardDrucker = ActivePrinter
    ActivePrinter = "MeinDrucker"
    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
    wdPrintDocumentWithMarkup, Copies:=1, Pages:="", PageType:= _
    wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
    PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
    PrintZoomPaperHeight:=0
    ActivePrinter = StandardDrucker
    End Sub
  3. Als Nächstes bauen Sie eine Abfrage ein, die Sie erst mit „Ja“ bestätigen müssen, damit der Ausdruck startet. Dazu dienen die Zeilen
    Antwort = MsgBox("Auf Drucker MeinDrucker2 ausgeben?", vbYesNo, "Druckerauswahl")
    If Antwort = vbYes Then
    'Hier steht der Code für den Druckerwechsel und Druck
    End If

    Wenn Word diesen Visual Basic Code ausführt, erscheint auf dem Bildschirm ein Dialog mit der Frage „Auf Drucker MeinDrucker2 ausgeben?“. Bei einem Klick auf „Ja“, wird der Programmcode unter „If Antwort = vbYes Then“ ausgeführt. Bei einem Klick auf „Nein“, wird das Makro einfach beendet.

So erstellen Sie einen eigenen Dialog für die Druckerauswahl

Die Word-Entwicklungsumgebung hat noch einiges mehr zu bieten. Mit wenigen Klicks können Sie sich eigene Formulare mit Optionsfeldern und Schaltflächen erstellen und darüber einen Drucker auswählen. Makros in Word 2010 mit einem Dialog ausstatten

  1. Klicken Sie mit der rechten Maustaste auf „Normal“ und dann im Kontextmenü auf „Einfügen, UserForm“. Sie sehen jetzt ein neues Fenster mit einem leeren Formular und ein kleines Fenster mit dem Namen „Werkzeugsammlung“. Auf der linken Seite des Word-Fensters können Sie unter „Eigenschaften“ das Aussehen des Formulars bestimmen. Tragen Sie hier hinter „(Name)“ beispielsweise „DialogDruckerauswahl“ und hinter „Caption“ „Drucker-Auswahl“ ein.
  2. Klicken Sie in der „Werkzeugsammlung“ auf das Schaltflächen-Symbol und ziehen Sie es auf das leere Formular. Im Fenster „Eigenschaften“ auf der linken Seite können Sie hinter „Caption“ die Beschriftung für die Schaltfläche festlegen, beispielsweise „Drucken“. Tragen Sie hinter „(Name)“ ebenfalls „Drucken“ ein.
  3. Ziehen Sie das Optionen-Symbol auf das Formular und geben Sie hinter „Caption“ die Beschriftung ein, beispielsweise „Drucker 1“.
  4. Wiederholen Sie die Schritte 2 und 3, und erstellen Sie ein Formular mit zwei Schaltflächen („Drucken“ und „Abbrechen“) und so vielen Optionsfeldern, wie Sie für die Druckerauswahl benötigen. Beim ersten Optionsfeld stellen Sie in den Eigenschaften hinter „Value“ den Wert „True“ ein. Damit ist dieses Feld standardmäßig aktiviert. Über die Taste F5 können Sie das Formulars testen.
  5. Bis jetzt hat das Formular noch keine Funktion. Diese fügen Sie hinzu, indem Sie den Schaltflächen Makro-Code zuweisen. Dazu müssen Sie nur auf die Schaltfläche „Drucken“ doppelklicken. Danach öffnet sich ein Fenster mit dem Unterprogramm „Private Sub Drucken_Click()“. Hier geben Sie die Befehle für die Auswahl des Druckers und den Ausdruck ähnlich wie im Beispiel-Makro „DruckerWechseln“ ein. Der einzige Unterschied ist die Abfrage der Optionsfelder, die sich über die Konstruktion
    If OptionButtonN = True
    End If

    realisieren lässt.

    Auch der Schaltfläche „Abbrechen“ weisen Sie per Doppelklick ein Unterprogramm zu. Hier genügt die Zeile „DialogDruckerauswahl .Hide“. Mit diesem Befehl wird der Dialog „Drucker-Auswahl“ geschlossen.

Das fertige Formular und den dazugehörigen Makro-Code können Sie auch als Datei mit dem Namen Beispieldatei-DruckerWechseln.zip herunterladen. Entpacken Sie die ZIP-Datei in einen beliebigen Ordner. Um das Formular zu verwenden, klicken Sie mit der rechten Maustaste im „Projekt-Explorer“ auf „Normal“ und dann auf „Datei importieren“. Wählen Sie die Datei „DialogDruckerauswahl.frm“ aus und klicken Sie auf „Öffnen“. Mit einem Doppelklick auf „Normal, Formulare, DialogDruckerauswahl“ öffnen Sie das Formular. Im Kontextmenü der Formulars klicken Sie dann auf „Code anzeigen“. Passen Sie dann den Programmcode und auch die Beschriftung des Formulars entsprechende Ihrer Konfiguration an.

wm@sharepoin