Excel (VBA)

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

 
(指定なし : 指定なし)
配布先で両面プリントさせたい
投稿日時: 19/05/22 12:11:26
投稿者: ngc1955

Excelbookをランチャーのようにして
同一フォルダの帳票の印刷を管理するマクロを作っています
 
Workbooks.Open myPath & "\帳票1.xlsx"
targetBook = ActiveWorkbook.Name
Workbooks(targetBook).PrintOut
 
帳票1は2ページなのですが2ページの時は
両面印刷にしたいのです。
 
その場合両面印刷の指示はVBAコードでは書けないですか。
やはり配布先で配布先のプリンタで設定してもらうしかないでしょうか
配布先のプリンタは手元にはありません。
 
 

回答
投稿日時: 19/05/22 15:30:24
投稿者: Suzu

引用:
その場合両面印刷の指示はVBAコードでは書けないですか。
やはり配布先で配布先のプリンタで設定してもらうしかないでしょうか
配布先のプリンタは手元にはありません。

 
プリンターの両面印刷等の画面は、プリンター及びドライバーにより違いますよね?
つまり、あの画面はプリンター及びそのドライバーに依存する機能です
 
なので、VBAから、直接的に制御する命令をExcelVBAはもっていません。
 
簡単なのは、
今の既定のプリンターの他に「両面印刷」をデフォルトの印刷設定とした プリンターを用意します。
そのプリンターを両面印刷を行いたい際には、Excelのプリンターとして一時的に設定すれば良いでしょう。

投稿日時: 19/05/22 20:03:27
投稿者: ngc1955

Suzuさんすぐに回答ありがとうございます
 
やはりVBAでは無理ですね。了解しました。
 
 
>そのプリンターを両面印刷を行いたい際には、Excelのプリンターとして一時的に設定すれば良いでしょう。
 
配布先の方に説明しておいて手動で印刷メニューからプリンタを選択してもらうという事ですね。
このプリンタを選ぶマクロが書ければだいぶ良いと思いますが、それも無理でしょうね。
今 マクロの記録で試してみましたが、ダメみたいでした。
 
 
 
 
 

回答
投稿日時: 19/05/22 20:45:22
投稿者: WinArrow
投稿者のウェブサイトに移動

VBAでプリンターを規定するのは、技術的には可能ですが、
 職場ごとに異なるプリンタ(メーカーも違う)、
プリンタもいつか買い替えることがある
使用するPCごとにポートが異なる
など、運用的には無理でしょうね。
  
印刷する操作を人手でプリンタを選択することを
VBAからサポートすることは可能です。
 一つの方法として
    Application.Dialogs(xlDialogPrinterSetup).Show
を使用して、必要なタイミングでオペレータにプリンタ切替を促すことができます。
切替前のActivePrinterをセーブすること
と処理終了後に元のプリンタに戻すこと
を忘れないで・・・
  
  

投稿日時: 19/05/22 22:52:58
投稿者: ngc1955

なるほど!
オペレータにダイアログやメッセージボックスで
対話するようにすれば、コードでコントロールしなくてもよいですね。
やってみます。ありがとうございました。