Document.XMLBeforeDelete イベント (Word)
ユーザーが文書から XML 要素を削除したときに発生します。 XML の切り取りと貼り付けなどを使用して同時に複数の要素を文書から削除した場合は、削除した各要素に対してイベントが発生します。
構文
式。XMLBeforeDelete (DeletedRange,OldXMLNode, InUndoRedo)
式Document オブジェクトを表す変数。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
DeletedRange | 必須 | Range | 削除する XML 要素の内容。 要素が削除され、テキストが関連付けられていない、だけの場合、DeletedRange パラメーターは存在しないためは、したがって、 Nothing に設定します。 |
OldXMLNode | 必須 | XMLNode | 削除するノードを指定します。 |
InUndoRedo | 必須 | ブール型 (Boolean) | True では、Microsoft Word で 元に戻すまたは やり直し機能を使用して、アクションが実行されたことを示します。 |
注釈
クラス モジュールで WithEvents キーワードを使用して宣言された Document オブジェクトを表します。 Document オブジェクトでイベントを使用する方法については、「Document オブジェクトでのイベントの使用」を参照してください。
InUndoRedo パラメーターが True の場合は、XMLAfterInsert イベントと XMLBeforeDelete イベントの実行中にドキュメント内の XML を変更しないでください。
InUndoRedo パラメーターが False の場合は、ドキュメント内の XML を挿入および削除できますが、XMLAfterInsert イベントと XMLBeforeDelete イベントが互いに取り消され、無限ループが発生しないように注意してください。 グローバルを使用して、無限ループを防ぐことができます ブール型 の変数と次の例に示すように、エラー ハンドラーの冒頭でチェックします。
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
例
次の使用例は、XML 要素が削除されたときに実行されます。 要素に文字列が含まれている場合はメッセージを表示して、その文字列を削除するかどうかの確認をユーザーに求めます。 ユーザーが [いいえ] をクリックして応答すると、要素の内容がクリップボードにコピーされます。
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
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。