[[20060927140643]] 『エクセルにPDFを印刷させる』(さとし) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『エクセルにPDFを印刷させる』(さとし)

いつも参考にさせていただいております。

たくさんあるPDFファイルの中からエクセル上で選んで印刷させたいのですが、
[[20060301095833]]『VBAでpdf』を参考にしています。
http://puremis.net/excel/code/083ja.shtml
にプリンターを指定して印刷する方法があるのですが、
どの事業所でも使用できるように、アクティブプリンターを取得させたいのです。

 Sub PrintTest()
 PrinterName = Application.ActivePrinter
 FileName = "C:\sample.pdf"
 Set myShell = CreateObject("WScript.Shell")
 myShell.Run ("AcroRd32.exe /t " & FileName & " " & PrinterName)
 End Sub

とすると、リーダーが強制終了されてしまいます。
どこを直せば動くようになるでしょうか。よろしくご指導下さい。

 [エクセルのバージョン]Excel2003
 [OSのバージョン]WindowsXP


 以下だけだとどうなりますか。
 Sub PrintTest()
 PrinterName = Application.ActivePrinter
 Filename = "C:\Sample.pdf"
 Set myShell = CreateObject("WScript.Shell")
 myShell.Run ("AcroRd32.exe /t " & Filename)
 End Sub

 プリンターは指定しなければ通常使うプリンターに出力されるはずなので、
 特にしてしなくてもいいはずです。

 (川野鮎太郎)

 コメントありがとうございます。
 私と身近にあるパソコン数台ではドライバ名、ポート名の省略はできるのですが、プリンタ名を省略すると印刷してくれません。
 手動で例えば、"LP-****"と入れるとちゃんと出して貰えます。
 環境によるのでしょうか。できれば、全事業所で動く様に作りたいのでお願いいたします。
(さとし)


 >手動で例えば、"LP-****"と入れるとちゃんと出して貰えます。
 これは具体的にどのような書き方をされてますか。

 (川野鮎太郎)

 コメントありがとうございます。
 すいません。言葉が足りなかったようです。具体的には、
 myShell.Run ("AcroRd32.exe /t " & FileName & " " & "EPSON LP-8100")
 で動きました。
 先ほど以下の方法で、プリンタ名の省略ができました。
 myShell.Run ("AcroRd32.exe /p /h " & FileName)
 お付き合い頂きありがとうございました。
 (さとし)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.