ドキュメントレベルでのデフォルトプリンタの定義(Microsoft Word)
一部のプログラムは、ドキュメントごとに、そのドキュメントを操作するときに最後に使用したプリンタを記憶しています。たとえば、InDesignとQuarkXPressは、特定のドキュメントの印刷に使用されたプリンターを記憶しています。あるドキュメントから別のドキュメントに切り替えると、そのドキュメントを印刷するように指定されたプリンタも変更されます。
残念ながら、Wordにはそのような機能はありません。代わりに、Wordはセッションごとにプリンターを追跡します。つまり、Wordを起動すると、デフォルトのWindowsプリンターで印刷することを前提として起動します。後で別のプリンタに変更した場合、特に変更を加えるまで、そのプリンタは選択されたままになります。 Wordセッションを終了して後で再起動すると、選択したプリンタが再びデフォルトのプリンタに戻ります。
この欠点を回避する方法はいくつかあります。 1つは、さまざまなカスタムプリンターボタンを定義することです(プリンターごとに1つ)
次に、必要に応じて、それらを使用してさまざまなドキュメントを印刷します。使用されたプリンターの記憶をWordに実行させたい場合、唯一のオプションは、これを実行するマクロを作成することです。ただし、このアプローチは簡単なものではありません。このため、このヒントの残りの部分では、実際のマクロコードを提示するのではなく、そのようなマクロを作成する一般性についてのみ説明します。
このようなマクロシステムを実装する簡単な方法は、特別なカスタムドキュメントプロパティを定義し、そのプロパティの内容を使用して、ドキュメントに最後に使用されたプリンタの名前を格納することです。
ドキュメントプロパティは、ドキュメントを閉じるたびに呼び出されるAutoCloseマクロを使用して設定できます。
カスタムドキュメントプロパティが設定されると、マクロは値を読み取り、印刷の準備ができたときにいつでもプリンタをリセットできます。ドキュメントプロパティが設定されていない場合、または使用できないプリンタに設定されている場合は、デフォルトのWindowsプリンタを使用するだけで済みます。
もちろん、このすべての秘訣は、プリンタの切り替えを行うマクロをいつ実行するかを決定することです。 Autoマクロ(AutoOpenなど)の1つに配置することもできますが、それでは問題を完全に解決することはできません。たとえば、2つのドキュメントを同時に開いた場合、プリンタは最後に開いたドキュメントで指定されたプリンタに設定されたままになります。
より便利な解決策は、単にマクロを使用して、Word内で使用される印刷コマンドを再定義することです。ドキュメントの印刷を選択すると、マクロには標準の[印刷]ダイアログボックスが表示されますが、選択したプリンターは、カスタムドキュメントプロパティに保存されているプリンターに変更されます。このアプローチの欠点は、初期の強度と同じです。つまり、実際に印刷するまでプリンターは変更されません。
Wordは、選択したプリンタードライバーに依存して、WYSIWYG表示を制御します。つまり、選択したプリンタドライバは、画面に情報を表示する方法を制御します。印刷直前にプリンタードライバーが変更された場合、印刷内容が画面に表示される内容と一致しない場合があります。
最善の解決策は、プリンター設定マクロを、ドキュメントがフォーカスに達したとき(ドキュメントが選択されたとき)に発生するイベントに関連付けることです。残念ながら、VBAのドキュメントオブジェクトで利用できるそのようなイベントはありません。 (ExcelのVBAの実装にそのようなオブジェクトがあるので、これは非常に興味深いものです。)
これらすべての結果として、完全なソリューションでは、いくつかの異なる組み込みのWordコマンドを変更する必要があります。どのコマンド?それは本当にあなたがWordをどのように使うかに依存します。たとえば、通常、印刷前に印刷プレビューを確認する場合は、[印刷プレビュー]コマンドを変更して、プリンタードライバーを変更する必要があります。印刷プレビュー画面から直接印刷コマンドを選択しますか?その場合は、そのコマンドに変更を加える必要があります。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(8226)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice 365のWordに適用されます。このヒントのバージョンは、ここにWordの古いメニューインターフェイス: