Dann verstehe ich aber nicht, was nicht funktioniert. Du mußt den Code im VBA-Editor von Word unter "NewMacros" pasten (s. Bild), unter Extras->Verweise "PDFCreator" aktivieren (s. Bild) und dann im aktuellen Word-Dokument das Makro mit Extras->Makros->Ausführen ausführen (s. Bild). Ggf. kannst Du auch, wenn Du willst, das Makro mit einem Button auf der Symbolleiste verknüpfen.
Wenn eine Sicherheitsfehlermeldung kommt, mußt Du Extras->Makros->Sicherheit auf "Niedrig" setzen. Außerdem habe ich den VBA-Code im Folgenden auf das Notwendigste vereinfacht um jede Fehlermöglichkeit auszuschließen. Im Übrigen habe ich beim Testen festgestellt, daß die Funktion Sleep bei mir an anderer Stelle deklariert war. Ich habe sie jetzt hier in den Code eingefügt.
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMS As Long)
Public Sub PDFDruck()
Dim Zwi$, PDFPfad$, PDFName$, pdfjob
PDFPfad$ = "C:\Zwi"
'Ermittelt den Namen des aktiven Dokuments:
Zwi$ = ActiveDocument.Name
If InStr(1, Zwi$, ".", vbTextCompare) > 1 Then
PDFName$ = Mid(Zwi$, 1, InStr(1, Zwi$, ".", vbTextCompare) - 1)
Else
PDFName$ = "Unbenannt"
End If
Set pdfjob = New PDFCreator.clsPDFCreator
With pdfjob
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "PDFCreator kann nicht initialisiert werden. Bitte beenden Sie die PDFCreator-Prozesse.", vbCritical + _
vbOKOnly, "PrtPDFCreator"
GoTo Ende
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = PDFPfad$
.cOption("AutosaveFilename") = PDFName$
.cOption("AutosaveFormat") = 0 '0 = PDF
.cDefaultPrinter = "PDFCreator"
.cPrinterStop = False
.cClearCache
ActiveDocument.PrintOut Background:=False
End With
'!!!!!!!!!!!!!!!!Wartet ab, bis fertig gedruckt ist:!!!!!!!!!!!!!!
Dim sleepTime, maxTime, c
sleepTime = 250
maxTime = 10
c = 0
Do While (pdfjob.cOutputFilename = "") And (c < (maxTime * 1000 / sleepTime))
c = c + 1
Sleep 200
Loop
'!!!!!!!!!!!!!!!Ende des Abwartens!!!!!!!!!!!!!!
Ende:
Zwi$ = pdfjob.cOutputFilename
pdfjob.cClose
Set pdfjob = Nothing
If Len(Zwi$) > 0 Then
MsgBox "Das Dokument wurde nach " & Zwi$ & " gespeichert.", vbInformation
Else
MsgBox "Beim Speichern als pdf ist ein Fehler aufgetreten!", vbCritical
End If
End Sub