powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Word - Вычислить и остановить закрытие документа
12 сообщений из 37, страница 2 из 2
VBA Word - Вычислить и остановить закрытие документа
    #39240716
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выложите документ
...
Рейтинг: 0 / 0
VBA Word - Вычислить и остановить закрытие документа
    #39240770
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proвыложите документ
Отправила Вам на Email файлы.
...
Рейтинг: 0 / 0
VBA Word - Вычислить и остановить закрытие документа
    #39240773
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня нет желания разбираться в ворохе файлов и кода. Прикладываю файл с иллюстрацией того, что я описал выше. Я немного перемудрил с классом, достаточно все это сделать просто в модуле.
...
Рейтинг: 0 / 0
VBA Word - Вычислить и остановить закрытие документа
    #39241753
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
Спасибо большое за пример, мне он очень помог с ориентироваться, не знаю правда на сколько уж профессионально у меня все получилось, но работает.
Единственный еще правда вопрос возник по ходу, в посте выше Вы дали мне очень полезное и ценное разъяснение, что оказалось для меня немаловажно, что Document_Close вызывается после App_DocumentBeforeClose. Скажите, событие Quit срабатывает же по идее после App_DocumentBeforeClose, верно?
И можно ли как то тогда вычислить как каким образом юзер закрывает документ? Например, жмет Ctr+W, т.е. оболочка ворда остается, а документ закрывается, или же юзер нажимает крестик в углу оболочки ворда и если открыт только один документ, то он соответственно закрывается вместе с оболочкой ворда.
Просто хотелось бы реализовать вот такую еще вещь, что если закрывается полностью оболочка ворда, то предварительно молча выгружается подключенный шаблон.
...
Рейтинг: 0 / 0
VBA Word - Вычислить и остановить закрытие документа
    #39241755
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Quit возникает естественно после закрытия всех документов и возникает именно при закрытии оболочки.
...
Рейтинг: 0 / 0
VBA Word - Вычислить и остановить закрытие документа
    #39245461
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proвозникает именно при закрытии оболочки.
так вот и вопрос то в том, как понять заранее, что юзер закрывает не только все открытые док. но и саму оболочку?
Потому что в ворде нет отдельной кнопки для закрытия каждого документа. Начиная с 2007 версии и выше они убрали эту кнопку и теперь пользователи жмут общий "Х" на самой оболочке.
Получается что Quit при закрытии последнего док. просто не срабатывает.
...
Рейтинг: 0 / 0
VBA Word - Вычислить и остановить закрытие документа
    #39245493
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nataxa23Получается что Quit при закрытии последнего док. просто не срабатывает.Это утверждение или вопрос?
...
Рейтинг: 0 / 0
VBA Word - Вычислить и остановить закрытие документа
    #39245517
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pronataxa23Получается что Quit при закрытии последнего док. просто не срабатывает.Это утверждение или вопрос?
Просто мысли в слух, пытаюсь думать логически, так сказать. :)
Но я вроде уже нашла в чем моя ошибка. Дело в том, в прошлый раз я событие DocumentBeforeClose я прописала в самом файле, следовательно по этой причине я пришла к такому рассуждению.
Сегодня сделала иначе, прописала DocumentBeforeClose, а так же Quit непосредственно в сам шаблон. И теперь все выполняется, и пока что я ошибок не наблюдаю. Кроме правда одной:
Ошибка № 5825 : " Объект был удален. "
Возникать она начала, если я начинаю тестить экспериментируя, чтобы по возможности сразу предугадать как юзер может пытаться (косячно/некосячно) открывать файл.
Вот и здесь она соответственно вылезла тогда, когда если повторно будет происходить запуск моего шаблона. Т.е., если мой шаблон был уже подключен раньше, то при попытке запустить его повторно выходит ошибка 5825.
Других косяков я пока не получаю, может потому что тестю пока только на своем компе, по себе знаю, как запустишь на другом, так еще что то вылезет. Но я что то эту ошибку сейчас понять не могу, чтобы исправить. Такое чувство, что на процедуре Document_New и Document_Open нужно делать проверку подключен ли уже мой шаблон.
Косяк срабатывает на процедурах Document_New и Document_Open, после того как нажимаю на своей стартовой спец.форме ок или exit при повторном запуске.
Есть ли у Вас мысли по этому поводу???
...
Рейтинг: 0 / 0
VBA Word - Вычислить и остановить закрытие документа
    #39245537
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на какой строке возникает ошибка?
...
Рейтинг: 0 / 0
VBA Word - Вычислить и остановить закрытие документа
    #39245590
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proна какой строке возникает ошибка?
Вот как назло определить не получается - пошагово не запустишь, это происходит на этапе, когда открывается основной файл, из него кодом я открываю файл - проект шаблона. Когда запускается шаблон то вначале появляется стартовая форма, чтобы юзер мог сделать выбор подключать ему шаблон или нет. И во тут, независимо от выбора юзера, после того как добавлены события DocumentBeforeClose и Quit, вот после этого уже и стала возникать эта ошибка.

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

К тому же еще после этой ошибки ворд начинает падать.
...
Рейтинг: 0 / 0
VBA Word - Вычислить и остановить закрытие документа
    #39245599
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nataxa23,
Одно понятно точно, что ошибка возникает на строке, когда я пытаюсь делать инициализацию.
Код: vbnet
1.
Set D.AppWord = Application 'вот на этой строке получается косяк, если запускать повторно.


Просто сделала сейчас тупой эксперимент и из процедур Document_New и Document_Open, где эта строка была прописана, я перенесла ее в другую процедуру, ошибка сработала уже из нее.
Следовательно, ошибка возникает именно на этой строке при повторном запуске, когда идет попытка инициализации. После чего ворд еще и падает.
В шаблоне класс я создавала как описано в справке .
...
Рейтинг: 0 / 0
VBA Word - Вычислить и остановить закрытие документа
    #39245745
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь все таки понять и разобраться с инициализацией.
Ошибка 5825 возникает, если инициализацию делать после стартовой формы при запуске шаблона.
Эта ошибка перестает возникать, если инициализацию делать перед стартовой формой в шаблоне. Т.е. по логике вначале идет инициализация, а потом стартует форма приветствия.
Но тогда возникает другой момент, если юзер на форме выбирает кнопку exit - закрывается форма, а следом за ней и шаблон без подключения, а основной файл (который собственно отвечает за запуск шаблона) остается открытым. При повторном запуске инициализация уже не происходит , не могу понять почему?
Больше того, если закрыть все открытые файлы, но оболочку не закрывать и пытаться открыть по новой запустив основной файл, который вызовет снова форму и уже подключит шаблон, то инициализации так же не происходит. Т.е. после первого отката, приходится закрывать всю оболочку ворда, чтобы произошла инициализация. Что в этом случае мешает инициировать при повторном открытии? Не могу никак понять как добиться.
Запуск шаблона из основного файла делаю так:
Код: vbnet
1.
2.
3.
4.
5.
Private Sub АвтоЗапускШаблона()
...
Documents.Add (строкаПолныйПуть)
...
End Sub
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Word - Вычислить и остановить закрытие документа
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]