Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возникают, когда пользователь добавляет новый элемент XML в документ. Если в документ одновременно добавляется несколько элементов (например, при вырезании и вставке XML), событие срабатывает для каждого вставленного элемента.
Синтаксис
выражение. 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 и обратная связь.