Word VBA AutoNew макрос не срабатывает при открытии Word - PullRequest
0 голосов
/ 12 февраля 2020

Использование Word 2013.

Я нашел этот предыдущий вопрос , который похож, но не было принятого ответа, и я не пытаюсь создать надстройку, поэтому я надеюсь, мне не нужно что-то сложное.

У меня есть макросы AutoNew и AutoOpen в моем Normal.dotm. Они работают отлично, за исключением того, что ни один из них не срабатывает, когда я открываю Word из панели задач или другого значка. В этой ситуации Word открывается с пустым «Document1», но без требуемой инициализации.

Предположим, мои макросы отображают сообщение с именем документа при открытии или создании документа. Я знаю, что это глупо, но это похоже на работоспособный пример.

Если я открою документ, щелкнув по нему в проводнике или с помощью File | Открыть или Файл | Новый, затем запускается соответствующий макрос, и появляется всплывающее сообщение.

Но если я просто открою Word с нуля, то макрос не сработает, и не появится сообщение, отображающее «Document1».

Я попытался использовать AutoExe c, чтобы охватить эту ситуацию, но когда срабатывает AutoExe c, нет активного окна и еще не загружен документ.

Идеи?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Пример, процитированный в вопросе, не «работоспособен», поскольку нет смысла показывать имя автоматически сгенерированного документа.

В любом случае, только AutoExec будет срабатывать при запуске приложения Word - это сделано специально. AutoNew не запускается, когда Word создает новый документ по умолчанию при запуске приложения. (Вы также заметите, что если вы немедленно откроете другой документ, ничего не делая с документом по умолчанию, этот документ будет закрыт автоматически. В некотором смысле, этот документ по умолчанию не существует, пока пользователь не предпримет действия с ним.)

Что может сработать, так это явно создать новый документ во время AutoExe c. Это приведет к созданию документа вместо документа по умолчанию. Документ будет иметь то же имя, что и документ по умолчанию. Единственное отличие состоит в том, что этот документ не закроется автоматически при открытии другого документа.

Когда документ создан, будет запущен AutoNewDocument_New).

Sub AutoExec()

    Documents.Add

End Sub
0 голосов
/ 12 февраля 2020

Вы пытались просто добавить код для событий Document_New () и Document_Open () в файл Normal.dot? Я только попробовал это с моим, и однако я открыл тестовый документ, я получил Document_Open () для запуска. Document_New () также работает.

Снимок экрана моей установки для тестирования. Соответствующее сообщение содержит название документа.

enter image description here

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