- ベストアンサー
【Excel VBA】印刷について
Excel2003を使用しています。 不要ページをスキップして印刷するマクロを作成し、特定のBookでのみ使用しているのですが、このBookを印刷するときはカラー印刷を指定したいので、この印刷マクロの中でカラー印刷を指定できたらと思っているのですが、このようなことは可能でしょうか?可能であれば、どのように記述すればいいでしょうか? ページ設定のマクロの記録をとったところ、下記のように(不要と思われる設定は削除しました)記述されていました。 [BlackAndWhite = False]という部分がカラー印刷に関するコード?かと思い、追加してみたのですが、カラー印刷されませんでした。 With ActiveSheet.PageSetup .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 98 .PrintErrors = xlPrintErrorsDisplayed End With よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> その複合機のほうの通常設定を確認してみます。 そうですね。あと、各 PC にインストールされているプリンタドライバ (=プリンタの設定)の話ですが。。。 機種によりますけど「カラー原稿を白黒出力する」設定があったりします。 その設定により、Excel 側でカラー印刷しても白黒...ということになる のかもしれません。 ご参考までですが、私は無駄なカラー印刷を抑えるため、複合機の通常時 の印刷モードを「自動判定」や「カラー」ではなく「白黒」に設定してます。 カラー印刷が必要なときは、意図的にプリンタ設定を「カラー」に変更しな ければないらないわけですが....このあたりはどうですか? プリンタのプロパティーで設定が確認できると思います。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
結論として、カラーで印刷できる(人間が経験から状況判断)プリンターを選ぶより他ないと思います。プログラムでプリンターの印刷能力属性を取得するのは難しいでしょう。 最近のプリンターは、職場・小数個人で使うページプリンタ以外は個人で使うインクジェットプリンタなどカラー印刷が当たり前です。 白黒印刷しかできないプリンターも混じっているときは、VBAでctivePrinterをカラー印刷できる機種に指定すればよい。 BlackAndWhite = Trueはカラープリンタでの、コストやスピード・必要性からわざわざ白黒印刷を選択するためのものです。 シートごとに変えるのならSheet名+印刷RANGEを変えて指定するときに、ActivePrinterの指定とBlackAndWhite =の指定を変えればよいと思う。 ーー Sub test01() MsgBox "現在使用しているプリンタ名は " & Application.ActivePrinter End Sub でActivePrinter名はわかります。 ーー http://www.big.or.jp/~seto/vbaref/vbaref8.htm 印刷プリンタの切り替え ーー PrinyOutメソッドの引数にもActivePrinterはあります。 上記WEBサイト ーー 参考 http://www.vbalab.net/vbaqa/data/excel/log/tree_60.htm
お礼
回答ありがとうございます。 >最近のプリンターは、職場・小数個人で使うページプリンタ以外は個人で使うインクジェットプリンタなどカラー印刷が当たり前です。 プリンターは、事務所内で無線LANで複合機を使用していますので、その複合機のほうの通常設定を確認してみます。 >BlackAndWhite = Trueはカラープリンタでの、コストやスピード・必要性からわざわざ白黒印刷を選択するためのものです。 わざわざ白黒印刷を選択するためのものなのですね。ちょっと勘違いしていたような気がします…。 教えていただいたURLも拝見しましたが、大変参考になりました。 ありがとうございました。
- KenKen_SP
- ベストアンサー率62% (785/1258)
> [BlackAndWhite = False]という部分がカラー印刷に関するコード? 疑問に思ったらまずはヘルプをみて確認します。BlackAndWhite プロパティーは シートを白黒印刷する際に True に設定します。 通常の操作で言えば、[ページ設定]-[シートタブ]-[白黒印刷] です。 もちろん、ここにチェックが入っていてはカラープリンタを使用しても白黒で 出力されてしまいますので、解除しておきます。 さて... [[ 疑問点 ]] 1. PrintOut メソッドで使用されるプリンタは、カラープリンタで間違いないか? MsgBox "現在使用しているプリンタ名" & Application.ActivePrinter 2. 通常操作で出力した場合、正常(カラーで印刷される)? この点から整理しましょうか。このような時は、問題点の切り分けが必要なのです。 ・VBA の問題? ・プリンタの故障? ・インクの有無は? ・プリンタドライバの不調? ・指示したプリンタがモノクロとか? なお、参考情報ですが特定のプリンタで印刷するには、 ・ActivePrinter プロパティー ・PrintOut メソッドの引数 ActivePrinter を調べてみて下さい。
お礼
丁寧にアドバイスいただき、ありがとうございます。 ひとつひとつ確認してみたところ、VBAやプリンタ・プリンタドライバには問題ありませんでした。プリンターは、事務所内で無線LANで複合機を使用していますので、その複合機のほうの通常設定を確認してみます。 とりあえず、VBAの問題ではなさそうだということがわかっただけでも良かったです。 ありがとうございました!
お礼
お礼が遅くなり、申し訳ありません。 >ご参考までですが、私は無駄なカラー印刷を抑えるため、複合機の通常時の印刷モードを「自動判定」や「カラー」ではなく「白黒」に設定してます。 複合機の設定を確認してみました。あまり詳しいことはわからないのですが、通常時の印刷モードを「白黒」に設定してあるような?感じがしました(^_^;) 複合機のメーカーの人がKenKen_SP さんがおっしゃっている無駄なカラー印刷を抑えるため…と同じようなことを言っていたような気もしますし。。。 このBookは、電子印鑑で押印してあり、押印箇所を“赤”で出力したくて、印刷するときはカラーを指定して印刷するように設定したかったのですが、こういうことなら、意図的にカラーを設定して印刷するほうがよさそうですね。 最後まで、親切にアドバイスしていただき、ありがとうございました!