Word 2007: скрыть диалоговое окно печати - PullRequest
1 голос
/ 05 сентября 2011

У меня есть макрос VBA, который будет печатать письмо дважды с различными настройками страницы. Это прекрасно работает. Но иногда (я не знаю почему) появляется диалоговое окно печати (выберите принтер, ...). Как я могу скрыть диалоговое окно печати. Я люблю печатать на принтере по умолчанию и не хочу менять настройки.

Кто-нибудь, идея

ActiveDocument.PrintOut Background:=true

Не имеет никакого эффекта.

1 Ответ

0 голосов
/ 06 сентября 2011

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, который отображает диалоговое окно печати.Надеюсь, это поможет.

...