确定粘贴后是否插入了新的内容控件?

Determine if New ContentControls Were Inserted After Paste?

我需要确定在粘贴后是否有任何新的 ContentControl 被插入到 Word 2010 (docx) 文档中,以便我可以创建一个新的 XML 节点来映射它们。

在我看来,有两个挑战:

  1. 如何捕获粘贴事件? (我看到了检测按钮组合或工具栏按下等的建议)
  2. 检查控件的粘贴内容的最佳方法是什么? (我是否应该检查剪贴板,文档中的范围等)

一旦我有了新的 ContentControl 集合,我就已经有了可以检查先前是否存在的函数,如果 ContentControl 是新的,则可以创建新的映射。我只需要能够在插入时检测到新的 ContentControl 是否存在。

****更新****

我无法成功检查 ContentControls 的剪贴板内容。我无法通过剪贴板数据枚举来找到控件。

有一个内置事件处理程序在添加 ContentControl 后触发:

Private Sub Document_ContentControlAfterAdd(ByVal NewContentControl As ContentControl, ByVal InUndoRedo As Boolean)

将事件处理程序放在 ThisDocument 模块中(您可以在 ThisDocument 内部从 VBA 下拉列表中自动创建它)。

添加控件的方式无关紧要(粘贴和插入命令都会触发该事件)。每个新的 ContentControl 都会触发该事件。我可以测试每一个,看看它是否已经在文档中。

很有魅力。