Visual Basic - Knopf zum drucken?
Hallo Zusammen,
ich würde gerne wissen, wie ich bei Word in einem Dokument von 9 Seiten einen Knopf auf die erste Seite (Deckblatt) packen kann, sodass ich dann bei Betätigung der Taste Seite 2-9 drucken kann? Ich kenne mich mit visual basic leider nicht gut aus und bräuchte daher Ihre hilfe! Vielen Dank :)
Tim
4 Antworten
Hallo,
wähle zunächst in den Entwicklertools in der Gruppe Steuerelemente bei den Vorversionstools die Befehlsschaltfläche (ActiveX-Steuerelement) und ziehe diese an gewünschter Stelle auf dem Dokument auf.
Dabei sollte Word in den Entwurfsmodus schalten, ansonsten bitte in den Entwicklertools manuell aktivieren. Jetzt öffnest du den mit der Befehlschaltfläche ausgeführten VBA-Code, indem du entweder im Entwurfsmodus doppelt auf die Befehlsschaltfläche (namens CommandButton1) klickst, oder alternativ mit der rechten Maustaste auf die Befehlsschaltfläche klickst und im Kontextmenü Code anzeigen anwählst.
Dadurch öffnet sich das VBA-Fenster, in dem bereits die Subroutine Private Sub CommandButton1_Click() eingetragen sein sollte.
Ändere hier zunächst im Eigenschaftenfenster (falls dieses nicht geöffnet ist, klicke auf Ansicht → Eigenschaftenfenster oder drücke F4) den Namen in btnDrucken (optional, aber so macht man das normalerweise) und die Caption in Drucken (Caption meint die Beschriftung der Schaltfläche, sodass auf dieser anschließend nicht mehr „CommandButton1“, sondern eben „Drucken“ steht).
Hinweis: Bei Bedarf könntest du im Eigenschaftenfenster unter Font noch Schriftart, Schriftgröße und Schriftschnitt (Fett, Kursiv) der Befehlschaltflächenbeschriftung verändern. Dazu ins Feld Font klicken und dann rechts auf die dort angezeigten drei Punkte klicken, um das Schriftartenfenster zu öffnen. Das ist aber optional.
Rechts im Codefenster fügst du anschließend den folgenden Code ein, den dir schon AntiVegetarier1 angegeben hat:
Option Explicit
Private Sub btnDrucken_Click()
ActiveDocument.PrintOut Range:=wdPrintFromTo, From:="2", To:="9"
End Sub
Beachte: Wenn du den (VBA-)Namen der Befehlsschaltfläche im Eigenschaftenfenster vorher in btnDrucken geändert hast, musst du auch den Namen der Subroutine von Private Sub CommandButton1_Click() auf Private Sub btnDrucken_Click() ändern.
Speichere dein Dokument jetzt als Word-Dokument oder Word-Vorlage mit Makros ab, und verlasse anschließend den VB-Editor.
Stell bitte sicher, dass du den Entwurfmodus verlässt, indem du in den Entwicklertools auf diesen klickst, so dass dieser nicht mehr farbig unterlegt ist.
Jetzt kannst du im Dokument auf die Befehlsschaltfläche Drucken klicken, und Word sollte anschließend den Druckbefehl ausführen.
Eine Rückmeldung wäre nett und melde dich bitte bei Fragen!
Gruß, BerchGerch

Einen Button erzeugst du, indem du unter "Entwicklertools" eine Befehlsschaltfläche einfügst.
Dann zeichnest du ein Makro auf, indem du die Befehle zum Drucken ausführst.
Den aufgezeichneten Befehl fügst du dann ein bei z.B. "CommandButton1_Click".
So in etwa würde dann der Befehl aussehen:
Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="1", PageType:= _
wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
Pages müsstest du dann anpassen auf 2-9.
also ich bin auf befehlsschaltfläche (Active-x-steuerelemente) gegangen und habe einen comandbutton hinzugefügt. doppelklick drauf, dann ihren befehl eingefügt, sodass ich dort stehen habe:
Private Sub CommandButton1_Click()
Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="2-9", PageType:= _
wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
End Sub
Ich habe dann auf speichern unter den dateitypen word mit makros ausgewählt und es abgespeichert. Es tut sich beim anklicken des buttons allerdings gar nichts.. :/ Ich und Befehle in programmiersprache werden niemals freunde :D
Schau mal unter Entwicklertools, ob der Entwurfsmodus noch aktiv ist, dann nämlich tut sich beim Anklicken nichts. Ggf Entwurfsmodus ausschalten.
hallo, das geht einfach mit dem befehl:
ActiveDocument.PrintOut Range:=wdPrintFromTo, From:="2", To:="9"
In diesem Fall wäre es hilfreich zu wissen, was konkret nicht funktioniert:
- Führt Word den Druckbefehl nicht aus oder druckt es die falschen Seiten?
- Bekommst du irgendeine Fehlermeldung?
- Lässt sich die Befehlsschaltfläche nicht anklicken?
- Hängt sich Word auf oder „friert“ der Bildschirm „ein“?
usw.
das funktioniert alles nicht wie es soll :(