Макросы Word 2007: есть ли событие OnPrint, к которому я могу прикрепить макрос? - PullRequest
3 голосов
/ 10 июня 2010

Я собираюсь проверить форматирование файлов Word, прежде чем они будут отправлены на принтер, и он должен быть полностью прозрачным для пользователя (никаких дополнительных элементов управления, только используя стандартные параметры печати, доступные через пользовательский интерфейс).Есть ли событие OnPrint или BeforePrint, или что-то, что можно использовать в этом отношении, к которому я мог бы прикрепить макрос, так же, как я могу с Open, Close или Save?Такое ощущение, что все должно быть просто ... но это знаменитые последние слова.

Заранее спасибо, Роб

1 Ответ

5 голосов
/ 11 июня 2010

Вы можете настроить класс-оболочку для включения событий приложения Word.

В вашем документе вам потребуется создать модуль класса.Этот модуль класса будет называться "clsEvents".Вставьте этот код в новый модуль класса:

Public WithEvents myApp As Word.Application

Public Sub myApp_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)

    'add your code here
    MsgBox "Blah"
End Sub

Затем создайте стандартный модуль.Это будет подпрограмма, которая загрузит экземпляр приложения в ваш класс.Назовите этот стандартный модуль «События».Затем вставьте этот код:

Public e As clsEvents

Public Sub SetupEvents(theApp As Application)
    Set e = New clsEvents
    Set e.myApp = theApp
End Sub

Наконец, нам нужно вызвать ту подпрограмму, которую вы только что создали.Самый простой способ сделать это - вызвать его в событии document_open из модуля «ThisDocument».Вставьте этот код:

Private Sub Document_Open()
    SetupEvents Me.Application
End Sub

Это также позволит вам использовать все другие события Word Application, которые обычно скрыты без оболочки документа.

Закройте приложение и в следующий раз документи пользователь попытался напечатать ваш код.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...