VBAからPDFファイルを指定プリンタで印刷する際、ページ指定ができると業務効率が大幅に向上します。この記事では、Acrobat Readerを利用したShellコマンド印刷の基本と、ページ範囲を指定する方法を解説します。
Acrobat Readerを使ったVBA印刷の基本
VBAでPDFを印刷する場合、AcroRd32.exeをShellコマンドで呼び出す方法が一般的です。基本構文は以下の通りです。
strShellCommand = "AcroRd32.exe /t " & printFilePath & " " & printerName
このコマンドでPDFを指定プリンタに送ることができますが、デフォルトでは全ページが印刷されます。
ページ指定の方法
Acrobat Readerではコマンドライン引数としてページ範囲を指定することが可能です。印刷したいページを/startpage /endpageで指定することで、特定ページのみ印刷できます。
strShellCommand = "AcroRd32.exe /t " & printFilePath & " " & printerName & " /pagenum=2-4"
上記例では2ページから4ページまでを印刷対象にしています。
VBAでの完全なコード例
ページ指定を含めたShellコマンド実行のVBA例は以下です。
Sub 印刷テスト()
Dim wshShellObj As IWshRuntimeLibrary.WshShell
Set wshShellObj = New IWshRuntimeLibrary.WshShell
Dim strShellCommand As String
Dim printFilePath As String
Dim printerName As String
printerName = "DocuCentre-V C3375"
printFilePath = "C:\Users\●●●\Desktop\testfolder\プリントテスト\テストファイル.pdf"
strShellCommand = "AcroRd32.exe /t " & printFilePath & " " & printerName & " /pagenum=2-4"
wshShellObj.Run (strShellCommand)
Set wshShellObj = Nothing
End Sub
実務での注意点
ページ指定で印刷する場合、PDFのパスやプリンタ名にスペースが含まれると正しく動作しないことがあります。引用符で囲むか、正しいパスを指定することが重要です。
また、Acrobat ReaderのバージョンやOSの設定によって、コマンドライン引数の挙動が異なる場合があるため、事前にテストすることを推奨します。
まとめ
VBAからPDFを印刷する際は、Shell経由でAcrobat Readerを呼び出す方法が簡単です。ページ指定を加えることで、必要な範囲だけ印刷でき、効率的な業務運用が可能になります。
正しいコマンド構文とパス指定、プリンタ設定を確認して、安全にページ指定印刷を実装しましょう。

コメント