アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルVBAでプリンターの『180度反転』とか『手差し』とかを設定したいのですが、
プリンタ固有の設定は印刷時の詳細設定ダイアログで行うしかなく、
これを自動で選択して印刷したいのです。
ダイアログの設定操作はエクセルマクロの録音ボタンでは記録されません。
プリンタドライバを呼ぶ関数で設定する方法とかないでしょうか。

色々調べるとあるのは以下ですが、どれも目的のものではありません。

1.アプリケーションオブジェクトのプリントプロパティで設定
Application.Printers オブジェクトには目的の設定は存在しない
Application.ActivePrinter でも目的の設定項目は無い
ActiveSheet.PageSetup はエクセルのページ設定なので問題外

2.プリンタダイアログを表示する命令を発行して手操作で設定
Application.Dialogs(xlDialogPrinterSetup).Show
でダイアログを表示して手操作で変更するのは手間がかかるので却下
SendKeys でダイアログ操作も SendKeys命令は不確かなので却下です

使うプリンターはキャノン LBP9600C ですから、
以下のプリンタードライバーツールを用いればできそうですが、
ユーザーズガイドを見ても、VBAから呼び出す例はありません。
Canon Driver Configuration Tool V4.03(32bit)

唯一試すことができそうなのは、上記ツールを用いて
カスタマイズドライバセットと言う設定を3種類作成し、
 スロット1
 スロット2
 手差し3
VBAからは条件に応じて選択し印刷と言う感じです。

参照設定でプリンタドライバ Dllをくっつけて、
専用関数を呼ぶことで、設定の変更ができると言うサンプルなどないでしょうか。
どうかよろしくお願いします。

質問者からの補足コメント

  • その手がありますね。簡単ですし良いように思います。
    回答ありがとうございました。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/02/02 21:50

A 回答 (1件)

プリンターのドライバーでプリンターを名前を変えて設定をかえて必要な数だけ作成して置いたらいかがでしょうか?キャノンのプリンターを持

っていないのでこちらでは試せませんが…
この回答への補足あり
    • good
    • 8

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A