電子書籍の厳選無料作品が豊富!

WORD2013で、現在選択している頁のみを印刷できるようにVBAでしたいと思っています。
一応下記でできるのですが、

Sub PrintActivePage()
ActiveDocument.PrintOut Background:=True, Range:=wdPrintCurrentPage
End Sub

これだとすぐに印刷されて、コピー機のトレー選択ができません。
vbaでのトレー選択は難しいかもしれませんが、せめて印刷設定画面で、「現在のページを印刷」を選択した状態を表示させるにはどうすればよいでしょうか?

A 回答 (1件)

プリンターのトレイでの指定は、基本的にWord側の[ページ設定]にある


[用紙]タブの[用紙トレイ]で指定するようになっています。

[Wordで印刷するとき、トレイを選択できない不都合]
http://sutchy.cocolog-nifty.com/sutchy/2010/04/w …

印刷前に上記の[用紙]タブで指定しておけば、[現在のページを印刷]を
VBAで実行しても、トレイの指定はできています。
Wordは、プリンターの情報をもとに[印刷レイアウト]が作成されるので、
先にプリンター情報を読み込んで[ページ設定]がされます。
この情報を元に既定の印刷が開始されるのです。

印刷前に指定を変える場合は注意が必要です。印刷結果が違ってくる
こともありますから、VBAで指定する場合も現在の状態を残して置いて
から、印刷指定を変更して実行し、元の状態に戻すなどをする必要が
ある場合も考慮しなければならないことも検討すべきです。

Wordのマクロを紹介しているサイトでも、このような指定をするための
アドバイスをしています。

プリンター用紙トレイの指定の謎
http://ameblo.jp/gidgeerock/entry-10954009641.html

ページ設定のメンバーを調べれば、最初のページと以降を別々に指定
する必要があることも理解できると思います。
(Wordのヘッダーとフッターの指定と同じようなものですね)
https://msdn.microsoft.com/ja-jp/library/office/ …
PageSetup.FirstPageTray プロパティ
https://msdn.microsoft.com/ja-jp/library/office/ …
PageSetup.OtherPagesTray プロパティ
https://msdn.microsoft.com/ja-jp/library/office/ …

上記設定をVBAにて指定しておいてから、印刷もVBAで指定をすれば、
質問にあるような手順を踏まなくても、VBAでトレイの指定もできます。
InputBoxを利用すれば、トレイの種類をナンバー指定すれば、印刷の
実行前に選択することも可能になります。

Document.PrintOut メソッド
https://msdn.microsoft.com/ja-jp/library/office/ …
    • good
    • 0
この回答へのお礼

ページレイアウトのページ設定の用紙の用紙トレイの設定の所で指定すれば指定したトレイから印刷されました。
どうもありがとうございました。

お礼日時:2016/08/08 23:51

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