Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2012, 12:04   #1
cw_o
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 92
По умолчанию Работа с несколькими документами

Часто возникает такая проблема: работаю одновременно с несколькими документами, у которых один шаблон. В этом шаблоне есть макрос, вызывающий форму. Когда я переключаюсь между документами и вызываю макрос, то фокус переходит на предыдущий документ, из которого был вызван макрос и действия выполняются там. А мне нужно, разумеется, чтобы в текущем документе всё выполнялось.
Форма объявлена в пространстве шаблона. Форму вызываю примерно так:
Код:
Form1.Show
В обработчике формы в конце выгружаю ее:
Код:
Unload Me
cw_o вне форума Ответить с цитированием
Старый 23.11.2012, 15:27   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Нужно показать форму не модально, как например окно поиска и замены:
Код:
Form1.Show vbModeless
В таком случае вы можете переключать документы, не закрывая формы
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 23.11.2012, 17:33   #3
cw_o
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 92
По умолчанию

Нет, мне не совсем это нужно. Мне нужно, чтобы форма была модальной, но чтоб она открывалась в активном документе, а не том, где была открыта в предыдущий раз.
cw_o вне форума Ответить с цитированием
Старый 24.11.2012, 02:39   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Как ведёт себя форма? Она открывается для предыдущего активного документа или для того документа из которого была вызвана в первый раз? У меня подобный трюк повторить не получается: активным остаётся документ, который и был активным до вызова формы
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 26.11.2012, 09:35   #5
cw_o
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 92
По умолчанию

Итак, что делаю:
1. Открываю документ1, выполняю макрос, в котором вызывается форма Form1.Show
2. В форме в событии Form_Activate заполняется список, находящийся на форме, полями автотекста, содержащимися в шаблоне.
3. Выбираю в списке элемент, нажимаю на форме кнопку, в которой в конце есть вызов Unload Me
4. Элемент автотекста вставляется в документ1
5. Перехожу к документу2 - делаю его активным, вызываю тот же макрос

Результат:
Активным становится документ1, форма открывается в нем, далее после выбора в списке текст вставляется в него

Ожидаемый результат:
Активным остается документ2, форма открывается в нем, в него же вставляется текст

Проблема решается, только если закрыть документ1

Последний раз редактировалось cw_o; 26.11.2012 в 09:40.
cw_o вне форума Ответить с цитированием
Старый 26.11.2012, 15:20   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Дьявол кроется в деталях. Сдаётся мне, что причина в процедуре активации формы. Почему заполнять поля формы нужно при активации, а не при открытии?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 26.11.2012, 16:25   #7
cw_o
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 92
По умолчанию

Перенесла заполнение списка в Form_Initialize(). Результат тот же. Может, каким-то искусственным методом заставить его оставлять активным нужный документ?
cw_o вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с документами Ворда на веб странице Ципихович Эндрю Microsoft Office Word 15 16.09.2012 11:31
Работа с документами в php manula PHP 3 04.09.2012 12:36
Работа с документами на сайте SashaS HTML и CSS 3 17.03.2012 13:35
Работа с несколькими документами одновременно Busine2009 Microsoft Office Word 12 04.06.2009 19:53