Событие Document.XMLAfterInsert (Word)
Происходит, когда пользователь добавляет в документ новый XML-элемент. Если в документ одновременно добавляется несколько элементов (например, при вырезании и вставке XML), событие срабатывает для каждого вставленного элемента.
Синтаксис
expression. XMLAfterInsert'(NewXMLNode**, InUndoRedo)
Выражение Переменная, представляющая объект Document, объявленный с помощью ключевого слова WithEvents в модуле класса. Сведения об использовании событий с объектом Document см. в разделе Использование событий с объектом Document.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
NewXMLNode | Обязательный | Xmlnode | Только что добавленный УЗЕЛ XML. |
InUndoRedo | Обязательный | Boolean | Значение true указывает, что действие было выполнено с помощью функции отмены или повтора в Microsoft Word. |
Замечания
Если параметр InUndoRedo имеет значение True, никогда не изменяйте XML-код в документе во время выполнения событий XMLAfterInsert и XMLBeforeDelete .
Если параметр InUndoRedo имеет значение False, можно вставить и удалить XML-код в документ, но будьте осторожны, чтобы события XMLAfterInsert и XMLBeforeDelete не пытались отменить друг друга, что приведет к бесконечному циклу. Можно предотвратить бесконечные циклы с помощью глобальной логической переменной и проверить это в начале обработчика ошибок, как показано в следующем примере.
Dim blnIsXMLInsertRunning As Boolean
Private Sub Document_XMLAfterInsert(ByVal DeletedRange As Range, _
ByVal OldXMLNode As XMLNode, ByVal InUndoRedo As Boolean)
If blnIsXMLInsertRunning = False Then
blnIsXMLInsertRunning = True
'Insert your event code here.
Else
Exit Sub
End If
End Sub
Пример
В следующем примере проверяется только что добавленный узел и, если узел недопустим, отображается сообщение с описанием ошибки проверки.
Private Sub Document_XMLAfterInsert(ByVal NewXMLNode As XMLNode, _
ByVal InUndoRedo As Boolean)
NewXMLNode.Validate
If NewXMLNode.ValidationStatus <> wdXMLValidationStatusOK Then
MsgBox NewXMLNode.ValidationErrorText
End If
End Sub
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.