powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как поймать событие изменения документа Word?
1 сообщений из 1, страница 1 из 1
Как поймать событие изменения документа Word?
    #36531998
A grumbler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача: необходимо контролировать количество символов в тексте документа, а в случае превышения некоторого максимального значения выделять цветом "лишние" символы.
Собственно сама проверка и выделение цветом проблем не вызывают. Главный вопрос, каким образом оперативно отслеживать изменения в документе и вызывать проверку.

Вариант 1. Запускать проверку периодически через некоторые интервалы времени. Недостатки: бесконечный цикл с проверкой условия даже при отсутствии изменений в документе.
Вариант 2. Отслеживать события нажатия клавиш (набор и удаление символов) и левой кнопки мыши (вставка текста посредством контекстного меню или кнопки на панели инструментов).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub HandleEvents()
  Dim m As MSG
  
  bCancel = False
  Do While Not bCancel
    WaitMessage
    If PeekMessage(m, GetActiveWindow,  0 ,  0 , PM_NOREMOVE) Then
      Select Case m.Message
      Case WM_KEYUP, WM_LBUTTONUP
        UpdateInfo
      End Select
    End If
    DoEvents
  Loop
End Sub
Sub AutoOpen()
  HandleEvents
End Sub
Недостатки варианта 2: 1) некоторые изменения становятся видны только после дополнительного клика мышью или нажатия клавиши; 2) при открытии документа в Word 2003 SP3 иконки стандартных панелей инструментов не видны до первого клика.

Может, есть решение лучше? Подходящих событий объектной модели Word я не нашел.
Событие WindowSelectionChange не подходит, так как не происходит:
1) при наборе текста с клавиатуры, хотя курсор перемещается вправо;
2) при удалении символов клавишей BackSpace .
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как поймать событие изменения документа Word?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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