Word позволяет управлять событием DocumentBeforePrint, которое, в свою очередь, дает один доступ к управлению отображением диалогового окна печати.Это событие необходимо добавить в код VBA вручную.Управляете ли вы диалоговым окном для одного документа или всех будущих документов, будет зависеть от того, помещен ли код в один документ или шаблон, который генерирует новые документы.
Добавьте этот код в раздел объявлений VBA для ThisDocument:
Option Explicit
Private WithEvents app As Application
Затем отредактируйте подпрограммы Document_New()
и 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
отменяет стандартное диалоговое окно «Печать», чтобы код не пытался напечатать документ дважды,Это решение основано на предпосылке, что существующий макрос печатает документ без доступа к функции печати с помощью метода, такого как Dialogs(wdDialogFilePrint).Show
, который отображает диалоговое окно печати.Надеюсь, это поможет.