異なるページ設定でレターを 2 回印刷する vba マクロがあります。これはうまくいきます。しかし、ときどき (理由はわかりません) 印刷ダイアログ (プリンターの選択など) が表示されます。印刷ダイアログを非表示にする方法を教えてください。デフォルトのプリンターで印刷するのが好きで、設定を変更するのは好きではありません。
誰かアイデア
ActiveDocument.PrintOut Background:=true
なんの効果もありません。
異なるページ設定でレターを 2 回印刷する vba マクロがあります。これはうまくいきます。しかし、ときどき (理由はわかりません) 印刷ダイアログ (プリンターの選択など) が表示されます。印刷ダイアログを非表示にする方法を教えてください。デフォルトのプリンターで印刷するのが好きで、設定を変更するのは好きではありません。
誰かアイデア
ActiveDocument.PrintOut Background:=true
なんの効果もありません。
Word では、DocumentBeforePrint イベントを制御できます。これにより、印刷ダイアログ ボックスの表示を制御するためのアクセスが 1 つ提供されます。このイベントは、VBA コードに手動で追加する必要があります。単一のドキュメントまたは将来のすべてのドキュメントのダイアログを制御するかどうかは、コードが単一のドキュメント内に配置されているか、新しいドキュメントを生成するテンプレート内に配置されているかによって異なります。
ThisDocument の VBA Declarations セクションに次のコードを追加します。
Option Explicit
Private WithEvents app As Application
Document_New()
次に、とsubs を編集して、次のDocument_Open()
行を含めます。
Set app = Application
最後に、次のコードを使用して DocumentBeforePrint サブ (再び ThisDocument 内) を作成します。
Private Sub app_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
'Invoke your macro to print a letter twice with different settings here
Cancel = True
End Sub
このCancel = True
行は、標準の [印刷] ダイアログ ボックスをキャンセルして、コードがドキュメントを 2 回印刷しようとしないようにします。Dialogs(wdDialogFilePrint).Show
このソリューションは、印刷ダイアログ ボックスを表示するなどのメソッドを介して印刷機能にアクセスせずに、既存のマクロがドキュメントを印刷するという前提で実行され ます。お役に立てれば。