次の方法で共有


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 のサポートおよびフィードバックを参照してください。