Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Автозапуск макроса.


Автор: w432w 27.2.2016, 16:34
В Word документе имеется два макроса, если включаю макросы мышкой или горячими клавишами, то все работает, если пытаюсь настроить выполнение макроса автоматически при открытии документа то один работает, а второй нет.

Если прописать
Private Sub Document_Open()
    Call Макрос1
End Sub
то Макрос1 запускается при открытии документа.

Если прописать
Private Sub Document_Open()
    Call Макрос2
End Sub
То Макрос2 почему-то не запускается. 

Код Макроса2.
Sub Макрос2()
    ActiveWindow.ActivePane.LargeScroll ToRight:=-1
    ActiveWindow.ActivePane.SmallScroll ToRight:=1
End Sub

Автор: kapbepucm 29.2.2016, 15:45
Я сталкивался с подобной проблемой- решил тем, что "отсрачивал" выполнение "неисполняемого" макроса на несколько секунд. Решение, конечно не идеальное, но исправно работает уже десяток лет smile

Автор: w432w 29.2.2016, 16:22
Цитата

 решил тем, что "отсрачивал" выполнение "неисполняемого" макроса на несколько секунд


А какой для этого нужно добавить код?

Автор: Akina 1.3.2016, 09:06
Цитата(w432w @  27.2.2016,  17:34 Найти цитируемый пост)
Код Макроса2.
Код

Sub Макрос2()
    ActiveWindow.ActivePane.LargeScroll ToRight:=-1
    ActiveWindow.ActivePane.SmallScroll ToRight:=1
End Sub



В момент Document_Open никакого ActiveWindow не существует - он появится после завершения метода. Так что обращение к нему из метода бессмысленно.

Цитата(w432w @  29.2.2016,  17:22 Найти цитируемый пост)
какой для этого нужно добавить код? 

Используйте Application.OnTime.

Автор: w432w 1.3.2016, 13:57
kapbepucm, Akina
спасибо, помогло

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)