マクロ内のプリンターを一時的に変更する(Microsoft Word)
Shauneは、PDFライターに製品情報シートを印刷するマクロを作成しました。彼がPDFライターに印刷すると、マクロはそれが実行されているシステムのデフォルトプリンターをリセットするため、誰かが定期的に印刷しようとすると(マクロの終了後)、WordはユーザーがPDFライター。 Shauneは、デフォルトのプリンターをリセットせずに、マクロでPDFライターを一時的に使用する方法を探しています。
悪いニュース、ショーンは、プリンタのリセットを回避できないことです。 ActivePrinterプロパティをリセットすると、Wordは、特にリセットするまで、指定したプリンターがアクティブな(デフォルトの)プリンターのままであると見なします。
幸いなことに、ActivePrinterプロパティを読み取ることもできます。つまり、マクロを実行する前にユーザーが選択したプリンタをマクロに保存し、終了する前にActivePrinterプロパティをリセットできます。その結果、マクロが設定を検知して元に戻したため、ユーザーはデフォルトのプリンターが変更されたことに気付くことはありません。この手法は次のように使用されます:
Sub PrinterTechnique() Dim sCurrentPrinter as String Dim sPDFwriter as String ' perform whatever tasks need to be done prior to printing ' make sure you also initialize the sPDFwriter string with ' the name of your PDF writer ' save current printer name, then change to PDF writer sCurrentPrinter = Application.ActivePrinter Application.ActivePrinter = sPDFwriter ' print document, then go back to the original printer ActiveDocument.PrintOut Application.ActivePrinter = sCurrentPrinter ' continue with the rest of your macro End Sub
この例では、アクティブなプリンターが最初にsCurrentPrinter変数に保存され、次にアクティブなプリンターがsPDFwriter変数にあるものに設定されることに注意してください。 (前述のように、有効なプリンター名が含まれるようにsPDFwriterを初期化する必要があります。)印刷が完了すると、アクティブなプリンターは以前にsCurrentPrinter変数に保存したものに戻されます。
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(9808)は、Microsoft Word 2007、2010、2013、および2016に適用されます。Wordの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。
linkマクロ内のプリンターを一時的に変更する。