Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ocorre quando um usuário exclui um elemento XML de um documento. Se mais de um elemento for excluído do documento de uma vez (por exemplo, ao recortar e colar XML), esse evento é acionado para cada elemento excluído.
Sintaxe
expressão. XMLBeforeDelete (DeletedRange, OldXMLNode, InUndoRedo)
expressão Uma variável que representa um objeto documento .
Parâmetros
| Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
|---|---|---|---|
| DeletedRange | Obrigatório | Range | O conteúdo do elemento XML que está sendo excluído. Se apenas um elemento é excluído e não associadas a texto, o parâmetro DeletedRange não existirá e, portanto, ser definirá como Nothing. |
| OldXMLNode | Obrigatório | XMLNode | O nó que está sendo excluído. |
| InUndoRedo | Obrigatório | Boolean | True indica que a ação foi realizada usando o recurso Desfazer ou Refazer no Microsoft Word. |
Comentários
Representa um objeto documento que foi declarado através do palavra-chave WithEvents num módulo de classe. Para obter informações sobre como utilizar eventos com um objeto Documento , veja Utilizar eventos com o objeto Documento.
Se o parâmetro InUndoRedo for Verdadeiro, nunca altere o XML num documento enquanto os eventos XMLAfterInsert e XMLBeforeDelete estiverem em execução.
Se o parâmetro InUndoRedo for Falso, pode inserir e eliminar o XML no documento, mas tenha cuidado para que os eventos XMLAfterInsert e XMLBeforeDelete não tentem cancelar uns aos outros, causando um ciclo infinito. Você pode impedir que entrará em loop infinito usando um global variável booleano e verifique se o final do manipulador de erros, conforme mostrado no exemplo a seguir.
Dim blnIsXMLDeleteRunning As Boolean
Private Sub Document_XMLBeforeDelete(ByVal DeletedRange As Range, _
ByVal OldXMLNode As XMLNode, ByVal InUndoRedo As Boolean)
If blnIsXMLDeleteRunning = False Then
blnIsXMLDeleteRunning = True
'Insert your event code here.
Else
Exit Sub
End If
End Sub
Exemplo
O exemplo a seguir é executado quando um elemento XML é excluído. Se o elemento contiver texto, uma mensagem será exibida perguntando se o usuário deseja excluir o texto contido no elemento. Se o utilizador responder ao clicar em Não, os conteúdos do elemento são copiados para a Área de Transferência.
Private Sub Document_XMLBeforeDelete(ByVal DeletedRange As Range, _
ByVal OldXMLNode As XMLNode, ByVal InUndoRedo As Boolean)
Dim intResponse As Integer
If InUndoRedo = False Then
If Not DeletedRange Is Nothing Then
intResponse = MsgBox("Are you sure you want to delete the text " _
& vbCrLf & DeletedRange.Text, vbYesNo)
If intResponse = vbNo Then
DeletedRange.Copy
MsgBox "The text has been copied to the Clipboard." & vbCrLf & _
"Position your cursor where you want to insert it, " & _
vbCrLf & " and click Paste on the Edit menu."
End If
End If
End If
End Sub
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.