[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAユーザーフォームからプリンタの設定を変える』(あや)
XP Excel2003 Reader X
VBAのユーザーフォームにAcroPDFでPDFファイルを表示させ 該当ページを1アップで印刷しようとしています。 (プリンタの標準設定は、2アップの設定になっています)
application.dialogs(xldaialogpagesetup).show
’ページ設定の画面でオプションボタンを押して、 ’2アップと 設定を変えて OK
AcroPDF1.printpages Txt開始ページ,Txt終了ページ
としています。
しかし、プリンタ設定が変わっていない状態(2アップ)で印刷されてしまいます。
希望としては、印刷ダイアログを出さずに マクロの中に設定を変える記述が出来れば良いのですが マクロの記録を取っても、記録されませんでした。 (プリンタソフトの設定になってくるのかな)
簡単に出来る部分ではなさそうなのですが… つぎはぎの知識なので^^; 教えていただけるとありがたいです。
[[20120427163339]]で質問させてもらっていて、 1台だけReader Xにして対応しています。
前回の問題は Reader X を設定できて、無事動いたようでしょうか。
印刷設定を変更するのは大変なので(というかわからないので)、 プリンタを切り替えて印刷してはどうでしょうか。
「設定」の「プリンタとFAX」でプリンタの追加で、印刷したいプリンタを再度登録して
名前(例:PrintPDF)とします。
PrintPDF を右クリックして印刷設定を選んで印刷したい設定をしておき、 下記のマクロを使用してどうでしょうか (Mook)
Sub Sample() '// 現在の通常使うプリンタを保存 orgPrinter = vbGetDefaultPrinter()
'// 登録したプリンタを通常使うプリンタに設定 vbSetDefaultPrinter "PrintPDF"
'// --- 今の印刷処理 ----
'// 変更前のプリンタを通常使うプリンタに戻す vbSetDefaultPrinter orgPrinter End Sub
Sub vbSetDefaultPrinter(printerName) Dim Locator Dim Service Dim MesStr
Set Locator = CreateObject("WbemScripting.SWbemLocator") Set Service = Locator.ConnectServer For Each ret In Service.ExecQuery("SELECT * FROM Win32_Printer") If ret.Name = printerName Then ret.setDefaultPrinter Exit Sub End If Next End Sub
Function vbGetDefaultPrinter() Dim Locator Dim Service Dim MesStr
Set Locator = CreateObject("WbemScripting.SWbemLocator") Set Service = Locator.ConnectServer For Each ret In Service.ExecQuery("SELECT * FROM Win32_Printer Where Default = True") vbGetDefaultPrinter = ret.Name Exit Function Next End Function
Mookさん ありがとうございます。 まず、前回の結果報告のみさせてもらいます。
1台だけ自由なパソコンがあるのでReader Xにアップして、 メッセージボックスは出さずに印刷ができるようになりました。 ご面倒おかけましたm(_ _)mありがとうございました。
ただ、
do until Txtページ>=500 AcroPDF1.printpages Txtページ,Txtページ+1 Txtページ=Txtページ+4 loop
のようにすると、ページ指定をしているにもかかわらず 全ページが印刷されてしまいます。
こちらは、ページ数を毎行手書きで対応できるので、 エクセル画面でコピペや数式を使って、ゴリゴリ書きました。 AcroPDF1.printpages 1,2 AcroPDF1.printpages 5,6 ↓ AcroPDF1.printpages 500,501 といったように。
環境による壁をなんとか制御できないものかとお助け願いましたが、 なんともならない部分であったことを痛感しました。 懲りてませんけど、消耗が激しいです^^;
また明日、教えて頂いたプリンタの設定を試してみます。
(あや)
プリンタを切り替えで、希望の動きになりました。 Mookさんありがとうございました。
全体の8割くらい出来上がってきました^^
(あや)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.