1

異なるページ設定でレターを 2 回印刷する vba マクロがあります。これはうまくいきます。しかし、ときどき (理由はわかりません) 印刷ダイアログ (プリンターの選択など) が表示されます。印刷ダイアログを非表示にする方法を教えてください。デフォルトのプリンターで印刷するのが好きで、設定を変更するのは好きではありません。

誰かアイデア

ActiveDocument.PrintOut Background:=true

なんの効果もありません。

4

1 に答える 1

0

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このソリューションは、印刷ダイアログ ボックスを表示するなどのメソッドを介して印刷機能にアクセスせずに、既存のマクロがドキュメントを印刷するという前提で実行され ます。お役に立てれば。

于 2011-09-06T16:54:46.740 に答える