VBAでPDFをページ指定して印刷する方法とShellコマンド活用ガイド

Visual Basic

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を呼び出す方法が簡単です。ページ指定を加えることで、必要な範囲だけ印刷でき、効率的な業務運用が可能になります。

正しいコマンド構文とパス指定、プリンタ設定を確認して、安全にページ指定印刷を実装しましょう。

コメント

タイトルとURLをコピーしました