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