Определить момент завершения работы макроса

Программирование на Visual Basic for Applications
fob
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 70
Зарегистрирован: 19.06.2005 (Вс) 21:29

Определить момент завершения работы макроса

Сообщение fob » 19.01.2006 (Чт) 10:56

Из внешнего приложения создаю объект Word по шаблону. В этом шаблоне есть некоторый макрос. Я его запускаю (вызываю соотвесно Run объекта Application). Можно ли определить когда макрос закончил свою? Спасибо!

hohol_kz
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.08.2005 (Пт) 6:21

Сообщение hohol_kz » 23.01.2006 (Пн) 10:59

Тебе надо чтобы внешняя программа это узнала или внутри вновь созданного из шаблона документа? Или это для пользователя индикация?
На правах саморекламмы: "Кофейник" - это тот же "чайник", только круче.

fob
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 70
Зарегистрирован: 19.06.2005 (Вс) 21:29

Сообщение fob » 23.01.2006 (Пн) 11:02

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

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.01.2006 (Пн) 11:45

Перенести функционал макроса во внешнюю программу?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

fob
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 70
Зарегистрирован: 19.06.2005 (Вс) 21:29

Сообщение fob » 23.01.2006 (Пн) 12:17

ммм... это было бы хорошо :? . но шаблон каждый раз может быть разным и соотвесно макрос тоже. Хотя если есть возможность это сделать динамически на время выполнения, то было бы неплохо :lol:

hohol_kz
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.08.2005 (Пт) 6:21

Сообщение hohol_kz » 23.01.2006 (Пн) 12:21

А что, операцию автосохранения невозможно встроить в этот макрос по окончанию манипуляций? Или есть какие-то доводы против этого?
На правах саморекламмы: "Кофейник" - это тот же "чайник", только круче.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.01.2006 (Пн) 12:29

Пусть макрос при окончании выполнения закрывает документ без сохранения. И пусть внешнее приложение объявит документ withevents, ловит событие документа close и сохраняет в нём документ.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

hohol_kz
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.08.2005 (Пт) 6:21

Сообщение hohol_kz » 23.01.2006 (Пн) 12:39

Если у тебя при создании документа из шаблона родительское приложение теряет фокус, а после завершения работы макроса обратно получает, то почему бы не использовать эти события?
На правах саморекламмы: "Кофейник" - это тот же "чайник", только круче.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.01.2006 (Пн) 12:42

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

hohol_kz
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.08.2005 (Пт) 6:21

Сообщение hohol_kz » 23.01.2006 (Пн) 13:00

Дык он же не колется на том, как это все у него происходит.
Вот варианты и предполагаю.
:D
На правах саморекламмы: "Кофейник" - это тот же "чайник", только круче.

fob
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 70
Зарегистрирован: 19.06.2005 (Вс) 21:29

Сообщение fob » 23.01.2006 (Пн) 13:09

идея в том, что при создании документа из шаблона в нем запускается макрос с определнным именем, который обрабатывет данные в документе. надо узнать когда он закончит работу и сохранить документ по определнному адресу. затем этот файл может быть отправлен по почте (опять такие программным способом), передан по сети какими-то иными способами. Вобщем где-то на сервере приложение создает вордовый документ из шаблона, заполняет информацией, а потом запускается макрос, который выполняет еще некоторые действия с этой информацией. Потом это все дело нужно сохранить опять-таки на сервере и передать куда-то. Ну, например, по почте или через веб в браузере показать. Конечно щас многие наверное скажут, что пусть макрос срабатывает при открытии документом пользователем, но есть такая особенность, что макрос надо запускать из внешнего приложения. :roll:

hohol_kz
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.08.2005 (Пт) 6:21

Сообщение hohol_kz » 23.01.2006 (Пн) 13:24

И все же я так и не понял, что мешает внутри макроса выполнить операцию сохранения и не городить лишнего?
А потом уже во внешнем приложении шли его куда хочешь и когда хочешь.
Сам же пишешь: "...запускается макрос, который выполняет еще некоторые действия с этой информацией...". Остается добавить, в том числе и сохранение. Что мешает тебе сделать это?
На правах саморекламмы: "Кофейник" - это тот же "чайник", только круче.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.01.2006 (Пн) 14:04

fob
http://bbs.vbstreets.ru/viewtopic.php?p=6580628#6580628 чем не подходит?

hohol_kz
Если сохранять каждый раз в разное место?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 93

    TopList