Ich möchte in Word 2010 über einen Sprachbefehl, bzw. über ein Skript einen ganz bestimmten (von mehreren in der Liste befindlichen Druckern) auswählen. Wenn ich im Befehlseditor beim Befehlstyp die Makroaufnahme wähle, und dann mit der Maus den entsprechenden Drucker anwähle und das Makro so erstelle, hat das den Nachteil, dass das Makro wohl die absolute Mauszeigerposition aufzeichnet und deshalb ein falscher Drucker ausgewählt wird, wenn das Fenster, in dem Word läuft, verschoben wird oder in seiner Größe verändert wird. Daher suche ich eine Möglichkeit, wohl am besten durch ein Skript, das unabhängig von der Anordnung und Größe der Fenster einen ganz bestimmten definierten Drucker auswählt. Hat jemand eine Idee? Sollte es die Lösung schon geben, bitte ich um einen kurzen Hinweis. Ich konnte sie bisher nicht finden. Holger André
Hallo Holger, lösen Sie sich von der Makroaufnahme in Dragon - ich habe bisher noch keinen Fall gehabt, wo der entsprechende Sprachbefehl zuverlässig funktioniert hat. Benutzer Sie stattdessen Schritt-für-Schritt-Befehle. Dieser Typ sendet Tastenkombinationen an die Anwendung, und bekanntlich lässt sich Word auf diese Weise bedienen, man braucht nicht zwingend eine Maus.
Sie können die Aufgabe mit einem Skriptbefehl lösen.
Sie können dabei wie folgt vorgehen:
Gehen Sie zu Word und dort unter Entwicklertools. Dann auf Makro aufzeichnen. Gehen Sie dann auf Datei, Drucken, wählen Sie den gewünschten Drucker aus, klicken Sie auf Drucken und beenden die Makroaufzeichnung.
Dann gehen Sie auf Entwicklertools, Makros und klicken das von Ihnen erstellte Makro zum Bearbeiten an. Kopieren Sie den Inhalt des Makros.
Anschließend gehen Sie zum Drachen. Extras, neuen Befehle hinzufügen. Erstellen Sie ein Skript und fügen als Skripttext den kopierten Inhalt des Makros ein.
Speichern Sie den Befehl. Wenn der Drache meckert, drücken Sie Alt und Enter und klicken Word Libraray an. Speichern Sie dann den Befehl.
Skript-Beispiel für den Druck mit einem im Skript festgelegten Drucker:
Sub Main ActivePrinter = "Kyocera FS-2100D KX" 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 End Sub
Skript-Beispiel für den Wechsel des Druckers:
Sub Main ActivePrinter = "Kyocera FS-2100D KX" End Sub
DNS 15 Prof. Individual, Speechmike 3200 mit Philips Device Control Center (4.1.410.19) Intel Quad-Core i5 3570T, 2.3 GHz, L3 6 MB, 8 GB RAM, Win 10 (64 bit), MS-Office 2010
VBA ist ja ganz interessant, in dem Fall aber vielleicht Overkill. Die einfache Lösung wäre:
SendKeys "^p" ' um das Druckmenü zu öffnen (= Steuerung p) SendKeys "%n" ' um in das Name-Feld zu springen (= Alt n) SendKeys "k" ' um den ersten Drucker mit "K" auszuwählen SendKeys "~" ' um die Auswahl zu bestätigen (= Enter) SendKeys "~" ' um das Fenster zu schließen
_______________________________________
Dragon Professional 16 auf Windows 10 Pro und Windows 11 SpeechMike Premium (LFH3500); Office 2019 Pro + Office 365 (monatliches Abo) HP ZBook Fury 17 G8 - i7-11800H - 24 MB SmartCache - 32 GB RAM - 1 TB SSD
Zitat von R.WilkeVBA ist ja ganz interessant, in dem Fall aber vielleicht Overkill. Die einfache Lösung wäre:
SendKeys "^p" ' um das Druckmenü zu öffnen (= Steuerung p) usw.
Hallo Rüdiger,
diese Lösung ist nur bis Word 2007 möglich, meine ich. Word 2010 will's dem Anwender (ja, auch der Anwenderin) leicht machen - der Druckdialog ist per Tastatur fast nicht bedienbar. Übrigens: der Befehl "Dokument drucken" ruft den altbekannten Druckdialog auf.
Es scheint, dass ab Word 2010 die VBA-Lösung kein Overkill ist. Gruß, Pascal
Vielen Dank für die Antworten. Ich habe den Vorschlag von Dieter weiterverfolgt und habe folgendes Skript in Word 2010 erstellen lassen:
Sub Main ActivePrinter = "HP 3035 Briefbogen S2" 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 End Sub
Wenn ich es dann speichern möchte, erhalte ich ein Fenster mit der Überschrift "Befehlsakro" und der Meldung "Korrigieren Sie Syntaxfehler vor dem Speichern eines Makros." Wo in dem Skript ist denn ein Syntaxfehler? Denn ich habe das Skript genau so übernommen, wie es mir der Makroassistent in Word geliefert hat, d.h. ich habe keine eigenen Zusätze hinzugefügt. Holger
Zitat von P.Rochdiese Lösung ist nur bis Word 2007 möglich, meine ich.
Danke, Pascal, Du hast recht.
_______________________________________
Dragon Professional 16 auf Windows 10 Pro und Windows 11 SpeechMike Premium (LFH3500); Office 2019 Pro + Office 365 (monatliches Abo) HP ZBook Fury 17 G8 - i7-11800H - 24 MB SmartCache - 32 GB RAM - 1 TB SSD
Für den Fall, dass ich nur für einen Ausdruck nicht den normalerweise verwendeten Schwarz-weiß-Drucker am Arbeitsplatz, sondern einen Farbdrucker im lokalen Netz verwenden will, löse ich folgendes Word-VBA-Makro durch ein Symbol auf der Schnellzugriff-Leiste aus, was wohl auch durch Sprachbefehl möglich wäre. Dieses Makro ermittelt zunächst den aktiven Drucker, druckt dann farbig und macht schließlich den ursprünglichen Drucker wieder aktiv.
-------------- Sub DruckenSharpFarbig() ' ' Stellt für einen Ausdruck den Drucker um auf SHARP MX .. Color, anschließend zurück auf vorher aktiven Drucker ' Dim Drucker$ Drucker$ = ActivePrinter ActivePrinter = "\dc01-msSHARP MX-3110N PS Color Unten" 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 = Drucker$ End Sub --------------------
Das dürfte sich auf ähnliche Konstellationen übertragen lassen.
Grüße aus Münster
----- DPI 15.61, Macbook Pro 15'(mid 2014), Windows 11 Home via Parallels Desktop 17.1.1 für Mac (51537) 2.2 Ghz Intel Core i7 4770HQ, 16 GB RAM, 64 Bit, Office 365 Home