
Ich muss 20 einzelne Word-Dokumente ausdrucken. Ich möchte nicht jedes einzelne öffnen und aufDrucken.
Kann ich irgendwie alles auf einmal drucken?
Antwort1
In Windows können Sie mehrere Dateien auswählen, mit der rechten Maustaste klicken und „Drucken“ wählen. Dann werden alle ausgewählten Dateien gedruckt.
Bei meinen Tests funktionierte es jedoch nur mit bis zu 15 Dokumenten gleichzeitig (ich vermute, damit soll eine versehentliche Katastrophe durch Drucken des falschen Ordners verhindert werden).
Antwort2
Ich denke, dass dies mehr als nur ein einmaliger Bedarf ist (ansonsten können Sie die Windows-Benutzeroberfläche verwenden, um mehrere Dokumente auszuwählen, mit der rechten Maustaste zu klicken und „Drucken“ auszuwählen).
Wäre ein Makro akzeptabel? Hier ist der grundlegende Code, der zum Öffnen und Drucken eines Word-Dokuments aus einem Makro heraus erforderlich ist:
Sub PrintDocMacro()
Dim objWord As Object
Set objWord = CreateObject("Word.application") 'Start app
objWord.Documents.Open FileName:="c:\Temp\test.docx" 'Open doc
objWord.Visible = True
objWord.Application.PrintOut 'Print doc
objWord.ActiveDocument.Close savechanges:=True 'close & save doc
objWord.Application.Quit 'Close app
Set objWord = Nothing
End Sub
Wir müssten eine Schleife schreiben, um alle gewünschten Dokumente auszudrucken. Wenn die Dokumente, die Sie drucken möchten, alle Dokumente in einem bestimmten Ordner sind, könnten wir das auch tun. Microsoft hatBeispielcodezum Lesen eines Verzeichnisses.
Wenn Sie diese aus irgendeinem Grund nach einem Zeitplan drucken möchten, können Sie die Datei mit dem Makro so einrichten, dass sie mit AutoOpen ausgeführt wird und nach Abschluss sogar geschlossen wird, und dann einfach das Öffnen der Datei mit Makro über die Aufgabenplanung planen.
Antwort3
Mir ist klar, dass dies eine alte Frage ist, aber ich habe die Antwort, die ich hier verwende, nicht gesehen.
Sie können die Rechtsklickoption in der Windows Explorer-Shell verwenden, um mehrere Dokumente zu drucken. Normalerweise ist dies auf 15 Dokumente begrenzt.Dieses Limit kann in der Registrierung geändert werden. Hier ist der Wert, den Sie entsprechend Ihrem benötigten Grenzwert ändern müssen:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer
Name : MultipleInvokePromptMinimum
Type : DWORD
Default : 15 (decimal)
Hoffentlich erspart das jemandem die Mühe, ein Makro zu verwenden.
Antwort4
Dies ist ein Makro, mit dem Sie einen Ordner angeben können und das alle Word-Dateien in diesem Ordner (einschließlich der Unterordner) druckt.
Public optionCancel
Sub Print_word_files()
Dim path
Dim reminder As Integer
Dim oExtension As String
Dim Fso, oFolder, oSubfolder, oFile, queue As Collection
On Error Resume Next
path = " " //######################put files path here (ex: c:\users\myFiles) ################
If optionCancel = "yes" Then
optionCancel = "No"
Exit Sub
End If
reminder = MsgBox("Are you sure you want to print these files?", 4, "WARNING !!")
If reminder = 6 Then 'If Yes is clicked
Set Fso = CreateObject("Scripting.FileSystemObject")
Set queue = New Collection
queue.Add Fso.GetFolder(path) 'The path
Do While queue.Count > 0
Set oFolder = queue(1)
queue.Remove 1 'dequeue
'...insert any <<folder>> processing code here...
For Each oSubfolder In oFolder.subfolders
queue.Add oSubfolder 'enqueue
Next oSubfolder
For Each oFile In oFolder.Files
oExtension = Right(oFile, Len(oFile) - InStrRev(oFile, ".", -1)) 'gets the file extension
If oExtension = "docx" Or oExtension = "DOCX" Or oExtension = "doc" Or oExtension = "DOC" Or oExtension = "docm" Or oExtension = "DOCM" Or oExtension = "rtf" Or oExtension = "RTF" Then
Documents.Open FileName:=(oFile)
'-------------------The required starts here
ActiveDocument.PrintOut 'Prints document
ActiveDocument.Saved = True 'to prevent asking to save
ActiveDocument.Close 'Closes document
'-------------------The required ends here
End If
Next oFile
Loop
Else
MsgBox ("Operation cancelled!!")
End If
End Sub