PDFファイルをどのように順番に印刷できるか(セルリストの順番)は分かりません。Excel-VBAを使用してセルリストの順にPDFファイルを印刷する方法は?
Sub PrintPDFFiles()
zProg = "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe"
zLastRow = [a65536].End(xlUp).Row
temp = "a1:a" & zLastRow
zPrinter = "HP LaserJet Professional M1213nf MFP "
For Each cell In Range(temp)
zFile = cell.Value
If zFile Like "*.pdf" Then
Shell """" & zProg & """/n /h /t""" & zFile & """"
End If
Next
End Sub
研究私がこれまで行ってきた:
ませんコマンドラインswitchは順序でファイルを印刷します。提案後
更新-1 MyCode:
私は私のコードでメソッドをobject.run使用し、私が取得エラー:
Sub PrintPDFFiles()
zProg = "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe"
zLastRow = [a65536].End(xlUp).Row
temp = "a1:a" & zLastRow
zPrinter = "HP LaserJet Professional M1213nf MFP "
For Each cell In Range(temp)
zFile = cell.Value
If zFile Like "*.pdf" Then
Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
zCommand = zProg & " /n /h /t " & Chr(34) & zFile & Chr(34) & " " & zPrinter
wsh.Run zCommand, windowStyle, waitOnReturn
End If
Next
End Sub
エラー:
更新-2マイコードAfte R提案:
wsh.Run """Acrobat.exe"" /n /h /t" & Chr(34) & zfile & Chr(34) & " " & zPrinter, , waitOnReturn
問題: は、私は、しかし、私は、各ファイルの後には、Adobe Acrobat Readerを閉じるように持って、runメソッドを使用して印刷することができました。私は500以上のファイルを印刷する必要があります。
あなたは**シェル**でループしています。あなたは確かですか?**シェル**は次のものが打ち上げられる前に完了しますか? –
Adobeは印刷が完了するまで開いていますか? Adobeをオブジェクトとして宣言しようとすると、「Adobe.Quit」、「Do not Not Adobe Is Nothing」のようになります。私はAdobeを操作する経験があまりありませんが、それは可能な方法です。 –
を参照してください:https://stackoverflow.com/questions/15951837/wait-for-shell-command-to-complete –