Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Durch VBA Acrobat Reader schließen und Drucker

Forumthread: Durch VBA Acrobat Reader schließen und Drucker

Durch VBA Acrobat Reader schließen und Drucker
11.03.2004 14:52:19
Jens K.
Hallo zusammen,
ich benötige eure Hilfe.
Als erstes mein VBA Code:
Public Declare

Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Sub pdf_a()
Product = "W:\Test\01_Navigator\A.pdf"
ShellExecute 0, "print", Product, "", "", SHOWMAXIMIZED
End Sub

Es wird dabei ein PDF Dokument gedruckt.
Wie kann ich den acrobat Reader wieder komplett schließen ?
Der Druck erfolgt immer auf den Standarddrucker. In welchem Teil muss ich was ändern, das ich den Druck auf einen anderen drucker als den Standarddrucker umleiten kann.
Wer kann mir bei dieser Sache helfen.
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Durch VBA Acrobat Reader schließen und Drucker
11.03.2004 17:42:37
Nepumuk
Hallo Jens,
beenden geht so:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Sub beenden()
PostMessage FindWindow(vbNullString, "Adobe Reader - [A]"), &H10, 0&, 0&
End Sub


Code eingefügt mit: Excel Code Jeanie
Gruß
Nepumuk
Anzeige
;
Anzeige

Infobox / Tutorial

Acrobat Reader mit VBA schließen und drucken


Schritt-für-Schritt-Anleitung

  1. VBA-Umgebung öffnen: Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Neues Modul erstellen: Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Code für das Drucken: Füge den folgenden Code in das Modul ein, um ein PDF-Dokument zu drucken:

    Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    
    Sub pdf_a()
       Product = "W:\Test\01_Navigator\A.pdf"
       ShellExecute 0, "print", Product, "", "", SHOWMAXIMIZED
    End Sub
  4. Code zum Schließen des Adobe Readers: Füge den folgenden Code hinzu, um den Acrobat Reader zu schließen:

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    
    Public Sub beenden()
       PostMessage FindWindow(vbNullString, "Adobe Reader - [A]"), &H10, 0, 0
    End Sub
  5. Drucken und Schließen: Rufe die Subroutinen in der gewünschten Reihenfolge auf:
    Sub DruckUndSchließen()
       pdf_a
       beenden
    End Sub

Häufige Fehler und Lösungen

  • Adobe Reader lässt sich nicht schließen: Stelle sicher, dass der Fenstertitel im FindWindow-Aufruf korrekt ist. Es kann variieren je nach Version des Acrobat Readers.
  • Druck funktioniert nicht: Überprüfe den Pfad zur PDF-Datei und stelle sicher, dass der Standarddrucker korrekt eingestellt ist.
  • Fehlermeldungen: Achte darauf, dass keine Syntaxfehler im Code vorhanden sind. Führe den Code Schritt für Schritt aus, um mögliche Problemstellen zu identifizieren.

Alternative Methoden

Falls du Schwierigkeiten mit dem oben genannten VBA-Code hast, kannst du auch die Shell-Funktion verwenden, um die Anwendung zu steuern. Zum Beispiel:

Shell "C:\Path\To\Acrobat.exe /t C:\Path\To\Your.pdf PrinterName", vbNormalFocus

Mit dieser Methode kannst du direkt den Drucker angeben, ohne den Acrobat Reader im Vordergrund zu benötigen.


Praktische Beispiele

Hier ist ein Beispiel, wie du den Adobe Acrobat im Dunkelmodus steuern kannst:

' Beispiel für das Setzen des Dunkelmodus in Adobe Acrobat
Shell "C:\Path\To\Acrobat.exe /s /o /dUseDarkMode=true", vbNormalFocus

Dies funktioniert nur, wenn du Adobe Acrobat unterstützt, das den Dunkelmodus bietet.


Tipps für Profis

  • Automatisierung: Kombiniere mehrere PDF-Dokumente in einer Schleife, um sie nacheinander zu drucken.
  • Fehlerbehandlung: Nutze On Error Resume Next und On Error GoTo 0, um Fehler im Code elegant zu behandeln.
  • Benutzerdefinierte Druckeinstellungen: Experimentiere mit den Druckeinstellungen von Adobe Acrobat, um die Leistung zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich den Drucker ändern?
Du kannst den Drucker im ShellExecute-Befehl ändern, indem du den gewünschten Druckernamen angibst.

2. Was tun, wenn der Adobe Reader im Dunkelmodus nicht reagiert?
Überprüfe deine Adobe-Einstellungen und stelle sicher, dass dein System den Dunkelmodus unterstützt.

3. Unterstützung für andere PDF-Reader?
Der VBA-Code kann je nach PDF-Reader variieren. Für alternative Reader wie Foxit Reader musst du deren spezifische Befehle verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige