【Word VBA】プリンター用紙トレイの指定の謎

2011年7月15日

日経パソコンの第4回「複雑な印刷設定もワンクリックで」に、用紙トレイを変更するマクロを記載しました。

3. トレイやプリンターを変更して印刷」(P5, P6)

たとえば、通常のモノクロプリンターから、カラープリンターに変更できるし、用紙トレイの変更も自動でできるんですよね。一度使うと、わざわざトレイの変更を自分でするのがばからしくなるくらい病みつきになります(笑)。

さて、このマクロを使うために、用紙トレイの番号を別紙に書出すというマクロを別途用意いたしました。詳しくは上記の記事をご覧ください。

[ページ設定]ダイアログボックス
(このページ設定から実行)

なぜわざわざトレイの番号を別紙に書出さなければならないのか?ということに疑問をいだいた方もいらっしゃったかもしれません。

ある程度マクロになれてくるとプリンターの用紙トレイに割付けられた定数を指定すれば、トレイを指定できると予想できます。

以下、ヘルプからコピーしました。読みにくくてすみません。

定数   番号   対象トレイ
wdPrinterAutomaticSheetFeed    7 自動給紙
wdPrinterDefaultBin      0 既定のトレイ
wdPrinterEnvelopeFeed    5 封筒フィーダー
wdPrinterFormSource     15 帳票
wdPrinterLargeCapacityBin    11 大容量トレイ
wdPrinterLargeFormatBin    10 大型用紙トレイ
wdPrinterLowerBin     2 下段のトレイ
wdPrinterManualEnvelopeFeed   6 手差しの封筒フィーダー
wdPrinterManualFeed    4 手差し
wdPrinterMiddleBin     3 中段のトレイ
wdPrinterOnlyBin      1 プリンターの唯一のトレイ
wdPrinterPaperCassette    14 用紙カセット
wdPrinterSmallFormatBin   9 小型用紙トレイ
wdPrinterTractorFeed    8 トラクターフィーダー
wdPrinterUpperBin     1 上段のトレイ

しかし、プリンターメーカーによっては、これらの番号が実際のプリンターと一致していないのです!!トレイ1を指定したつもりなのに、変更できない、などの事態になります。

そこで、上記の定数でトレイを設定するのではなく、実際にお使いのプリンター固有の番号を使っていただきたいと思い、今回のようなちょっと面倒なマクロになってしまいました。

プリンターの設定に関しては、以下の記事(英語です)に非常に詳しく説明されています。ご興味がある方はご参照ください。

Controlling the Printer from Word VBA

-コード
-