20 個の個別の Word 文書を一度に印刷するにはどうすればよいでしょうか?

20 個の個別の Word 文書を一度に印刷するにはどうすればよいでしょうか?

20個のWord文書を印刷する必要があります。それぞれを開いてクリックするのは面倒です。印刷

何とか一気に印刷することはできますか?

答え1

Windowsでは複数のファイルを選択して右クリックし、印刷を選択すると、選択したものがすべて印刷されます。

ここに画像の説明を入力してください

ただし、私のテストでは、一度に最大 15 個のドキュメントしか機能しません (間違ったフォルダーを印刷することによる偶発的な大惨事を防ぐためだと思います)。

ここに画像の説明を入力してください

答え2

これは、一度だけ必要なことではないと思います (そうでない場合は、Windows UI を使用して複数のドキュメントを選択し、右クリックして印刷を選択できます)。

マクロは許容されますか? 以下は、マクロから 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エクスプローラーシェルの右クリックオプションを使用して、複数のドキュメントを印刷できます。通常、これには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

関連情報