Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2016)
PDFファイルにヘッダー設定して印刷したい
投稿日時: 20/08/04 14:51:32
投稿者: tomo

いつも拝読させて頂いています。
VBAで任意のPDFファイルを印刷するコードを作成しました。
この時にPDFファイルのヘッダーにファイル名を設定する方法を御教授お願いします。
 
 
Sub PDF印刷_Shell()
    Dim wshShellObj As IWshRuntimeLibrary.WshShell
    Set wshShellObj = New IWshRuntimeLibrary.WshShell
    Dim strShellCommand As String
    Const folderPath = "C:\Users\"
    Const printFileName = "印刷したいファイル.pdf" ’←【ヘッダーに設定したい】
    Const printFilePath = folderPath & printFileName
    Dim printerName As String
    printerName = "プリンタ名"
    strShellCommand = "AcroRd32.exe /t " & printFilePath & " " & printerName
     
    wshShellObj.Run (strShellCommand)
 
    Set wshShellObj = Nothing
     
End Sub

回答
投稿日時: 20/08/04 16:29:47
投稿者: Suzu

今回は PDF を コマンドラインにて
Adobe Acrobat Reader DC を に対し、ファイルパスを与え 印刷しています。
 
つまり、Adobe Acrobat Reader DC の機能の一部です。
 
 
さて、ご希望の ファイル名を指定する方法ですが、Adobe Acrobat Reader DC にはありません。
プリンターの機能 としては あるかもしれませんが Readerにはありません。
 
PDFの印刷ダイアログで、「プロパティー」や「詳細設定」の部分から別ウィンドで開き設定できるのは
プリンタ側で そのファイル名を ヘッダーに追加し 印刷しています。
 
ですので、今回の、コマンドラインから、Adobe Acrobat Reader DC 経由での印刷では不可です。
 
 
ご希望の操作がアプリ側で可能
更に、コマンドラインやオートメーションで可能なアプリケーションを探すことから必要になります。

回答
投稿日時: 20/08/05 13:39:54
投稿者: QooApp

Suzuさんが指摘している通り、Readerにはありません。
 
また、印刷設定側にある可能性があるのも事実です。
 
ただ、印刷詳細設定というのは特殊な設定保存方法になっているため、
下記方法でヘッダーが出力できるかもしれません。
 
※必須条件:印刷詳細設定画面でヘッダーにファイル名を指定することができるプリンター機種であること
 (富士ゼロックスのプリンターなどはその機能があるものが多いですが、自分の機種に搭載されていない場合、使用できません)
 
@マクロ実行ファイルを開く
 
※初回のみ
A印刷したいpdfをReaderで手動で開き、印刷設定を行い印刷を行う
 
Bマクロから印刷したいファイルを普通に印刷する
 
C3項を必要な階数繰り返す
 
 
上記方法でできる可能性があります。
印刷詳細設定というのはそのPCからそのプリンターへ出力するとき、
各アプリケーションにおいて常時最後の設定が継承されます。
 
たとえば、エクセルシートを出力するとき、最後にカラー出力にした状態でエクセルを閉じ、
新規エクセルを作成し、印刷をしようとすると、各ブックに特殊なルール設定が保存されている既存ファイルを除いてカラー印刷というのが継承され続けます。
 
逆に途中でグレーにすると以後指定のない限りグレーが続きます。
 
このルールを利用してReaderの最後の印刷設定を○○と設定すると、少なくともパソコンの電源が落ちるまでは同じルールで印刷されるはずです。
 
別のVBA質問のコーナーでCUBE PDFを使用した印刷について投稿がありました。
そういった外部の無関係のソフトを経由して処理を行う場合
 
事前に定義不能な箇所を手動で定義することで”一時的にその状態を維持して実行可能になります”。
 
だめだったら他のソフトを経由するしかないんじゃないでしょうか。

投稿日時: 20/08/06 09:11:19
投稿者: tomo

Suzu様 Qoo App様
 
回答ありがとうございました。
アドバイスを受け、ヘッダー設定して印刷することが出来ましたので報告します。
 
 
Adobe Acrobat Reader DC にファイル名を指定する方法はないので
プリンターの印刷設定側でヘッダーを設定できるか確認しました。
現環境では複数種類のプリンターを使用していますが、ご指摘の通りヘッダー設定できる機種と
出来ない機種がありました。
 
「スタート」→「コントロールパネル」→「デバイスとプリンター」からヘッダー設定できる機種を
選択し、右クリックで「印刷設定」を選択。
そこでヘッダー/フッターの設定を行い「適用」クリック。
 
以後、電源を落としてもヘッダー設定は保持されていることを確認しました。
 
但し、ヘッダー設定したプリンターを選択して印刷するとヘッダーは表示され続けますので
プリンタードライバーを追加して、それぞれに「ヘッダー表示する」「ヘッダー表示しない」
設定すれば使い分けが出来ます。