Мне нужно распечатать 20 отдельных документов Word. Я не хочу открывать и нажимать кнопку « Печать».
Можно ли как-то распечатать все сразу?
Мне нужно распечатать 20 отдельных документов Word. Я не хочу открывать и нажимать кнопку « Печать».
Можно ли как-то распечатать все сразу?
В окнах вы можете выбрать несколько файлов правой кнопкой мыши и выбрать печать, и он будет печатать все, что вы выбрали
однако при тестировании он работает только с 15 документами одновременно (я полагаю, что это предотвращает случайную катастрофу, печатая неверную папку).
Я думаю, что это больше, чем разовая необходимость (в противном случае вы можете использовать интерфейс 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 и даже закрывать, когда это будет сделано, и просто запланировать открытие этого файла с поддержкой макросов через планировщик задач.
Как насчет того, чтобы собрать несколько команд оболочки и отправить каждый файл на принтер по отдельности?
Или даже:
lpr *.doc
Объединение файлов Microsoft * .doc на самом деле не возможно так, как вы хотите. Это связано со всей информацией заголовка документа в верхней части каждого файла.
Это макрос, который позволяет вам указать папку, и он будет печатать все файлы слов внутри этой папки, включая подпапки.
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
Я понимаю, что это старый вопрос, но я не видел ответ, который я использую здесь.
Вы можете использовать параметр правой кнопки мыши в оболочке Windows Explorer для печати нескольких документов. Обычно у этого есть 15 пределов документа; однако этот предел может быть изменен в реестре. Вот значение, которое нужно изменить до необходимого вам предела:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer
Name : MultipleInvokePromptMinimum
Type : DWORD
Default : 15 (decimal)
Надеюсь, это избавит кого-то от необходимости использовать макрос.
Я печатаю все документы (обычно до 30-32 документов) одновременно из папки, выбирая их все, затем нажимаю R-click и выбираю печать. Это отправляет на принтер по умолчанию с текущими настройками принтера и текущими настройками каждого файла. Это было возможно с помощью Windows XP Professional, с MS Word 2003. Теперь мы переключаемся на Windows 7, и мне нужно будет найти новый способ, и я заметил, что ограничение файла 15 (если вы выберете более 15, "print all" будет недоступно в меню R-click), которое затем Вы не можете просто нажать на печать и оставить компьютер, чтобы сделать что-то еще, вы должны подождать, пока все напечатано, и сделать это снова. Кроме того, эффективность, с которой Windows XP и MSW 2003 открывали документ и отправлял его на печать, намного лучше, чем Windows 7 (но я запускал 7 из программы MAC Parallels).
Я также заметил, что если я открою пустое окно Word и изменим его размер до минимального минимального прямоугольника на рабочем столе (это не минимизирует его до строки состояния) перед отправкой нескольких файлов на печать, эффективность Word с открытием, отправкой и закрытием каждый файл был увеличен.