Как распечатать 20 отдельных документов Word одновременно?

Как распечатать 20 отдельных документов Word одновременно?

Мне нужно распечатать 20 отдельных документов Word. Я не хочу открывать каждый и нажиматьРаспечатать.

Могу ли я как-то распечатать все сразу?

решение1

В Windows вы можете выбрать несколько файлов, щелкнув правой кнопкой мыши и выбрав «Печать», и все выбранные вами файлы будут распечатаны.

введите описание изображения здесь

Однако, по моим данным, он работает только с 15 документами одновременно (полагаю, это сделано для предотвращения случайной катастрофы, связанной с печатью неправильной папки).

введите описание изображения здесь

решение2

Я думаю, что это не просто одноразовая необходимость (в противном случае вы можете использовать пользовательский интерфейс Windows, чтобы выбрать несколько документов, щелкнуть правой кнопкой мыши и выбрать «Печать»).

Будет ли макрос приемлемым? Вот базовый код, необходимый для открытия и печати документа Word с помощью макроса:

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

Нам нужно написать цикл, чтобы напечатать все нужные вам документы. Если документы, которые вы хотите напечатать, — это все документы в заданной папке, мы можем сделать и это. У Microsoft естьпример кодадля чтения каталога.

Если по какой-то причине вы хотите распечатать их по расписанию, полагаю, вы можете заставить файл, содержащий макрос, запустить его с помощью AutoOpen и даже закрыть по завершении и просто запланировать открытие этого файла с включенным макросом с помощью Планировщика заданий.

решение3

Я понимаю, что это старый вопрос, но я не увидел ответа, который здесь использую.

Вы можете использовать опцию правой кнопки мыши в оболочке Windows Explorer для печати нескольких документов. Обычно это имеет ограничение в 15 документов; однако,этот лимит можно изменить в реестре. Вот значение, которое нужно изменить до нужного вам предела:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer
Name : MultipleInvokePromptMinimum
Type : DWORD
Default : 15 (decimal)

Надеюсь, это избавит кого-то от необходимости использовать макрос.

решение4

Это макрос, который позволяет указать папку, и он распечатает все файлы Word внутри этой папки, включая подпапки.

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

Связанный контент