[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセルに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.