0 / 0 / 0
Регистрация: 09.10.2007
Сообщений: 23
|
|
1 | |
Как отловить события закрытия/открытия WORD файла?22.05.2008, 14:01. Показов 2877. Ответов 8
Метки нет (Все метки)
открываю програмно Ворд и некий документ, как отловить, что ворд или документ закрыл пользователь?
Спасибо!
0
|
22.05.2008, 14:01 | |
Ответы с готовыми решениями:
8
Нужно отловить момент нажатия кнопки 'Отмена' в стандартном диалоге открытия файла Отлов события открытия\закрытия cd привода и обнаружение наличия диска События окон - открытия, закрытия и ухода на задний\передний план Время открытия и закрытия файла |
krosh
|
|
22.05.2008, 14:50 | 2 |
извини, не понял вопроса.
спроси еще раз по другому. |
0 / 0 / 0
Регистрация: 09.10.2007
Сообщений: 23
|
|
22.05.2008, 15:55 [ТС] | 3 |
делаю
Set WordApp = GetObject(, 'Word.Application') Set WordDoc = WordApp.Documents.Open(FilePath & FileName, , True) С этого момента могу делать с документом что хочу.. Но вот если я закрываю документ не програмно, а нажав на крестик в углу, то как понять, что кто-то закрыл документ или ворд? послать ли сообщение программе, проверить статус докмента, еще как-то?
0
|
Vita
|
|
22.05.2008, 15:58 | 4 |
Попробуй посмотреть события и обработать те, что надо, у объектов Ворда, например, Quit у Word.Application.
|
Vita
|
|
22.05.2008, 16:04 | 5 |
Код
Option Explicit Dim WithEvents a As Word.Application Private Sub a_DocumentChange() Debug.Print 'a_DocumentChange' End Sub Private Sub a_Quit() Debug.Print 'a_Quit' End Sub Private Sub Form_Load() Set a = CreateObject('Word.Application') a.Documents.Add a.Visible = True End Sub ' Вывод: a_DocumentChange a_Quit |
krosh
|
|
22.05.2008, 16:07 | 6 |
насколько я понял, тебе надо написать свой код в событии Document_close (или я опять что нибудь не так понял?)
|
0 / 0 / 0
Регистрация: 09.10.2007
Сообщений: 23
|
|
22.05.2008, 17:43 [ТС] | 7 |
ну просто огромедное спасибо. действительно WithEvents - то что нужно.
только начала с этим копаться, и есть одна непонятка. Если я например пишу Dim WithEvents WordDoc As Word.Document то выдается ошибка на таком коде (если WithEvents не писать, то все прекрасно работает) For Each WordDoc In WordApp.Documents If WordDoc.Name = mvarFileName Then сделать что-то Exit For End If Next WordDoc то есть WordDoc становится каким-то другим? каким?
0
|
Vita
|
|
22.05.2008, 18:29 | 8 |
Во-первых, немного по оформлению программ в топике, об этом красным цветов написано под знаком ! вверху, когда пишешь сообщение:
Если написать [ c o d e ] ' только без пробелов слово c o d e ' то получится вот что [ / c o d e ] Код
' только без пробелов слово c o d e ' то получится вот что Код
For Each WordDoc In WordApp.Documents If WordDoc.Name = mvarFileName Then сделать что-то Exit For End If Код
Dim tmpDoc as Word.Document For Each tmpDoc In WordApp.Documents If tmpDoc.Name = mvarFileName Then Set WordDoc = tmpDoc ' если нужно установить эту переменную ' сделать что-то Exit For End If Next tmpDoc Код
Set WordDoc = WordApp.Documents(mvarFileName) Код
Private Sub Form_Unload(Cancel As Integer) Set WordDoc = Nothing WordApp.Quit End Sub |
0 / 0 / 0
Регистрация: 09.10.2007
Сообщений: 23
|
|
25.05.2008, 14:21 [ТС] | 9 |
Большое спасибо за объяснение!
0
|
25.05.2008, 14:21 | |
25.05.2008, 14:21 | |
Помогаю со студенческими работами здесь
9
Перезапуск приложения после открытия и закрытия файла Как сделать что бы после закрытия файла Word открылась первая форма? Отлов события открытия файла в приложении Как отловить событие закрытия формы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |