确定粘贴后是否插入了新的ContentControls?

时间:2015-09-09 16:06:58

标签: vba ms-word clipboard word-contentcontrol

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

我认为,有两个挑战:

  1. 如何捕获粘贴事件? (我已经看到了检测按钮组合或工具栏按等的建议。)
  2. 检查控件的粘贴内容的最佳方法是什么? (我应该检查剪贴板,文档中的范围等)。
  3. 一旦我拥有了新的ContentControls的集合,我已经拥有可以检查先前存在的函数,并且如果ContentControls是新的,则创建新的映射。我只需要能够在插入时检测到新ContentControl的存在。

    **** **** UPDATE

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

1 个答案:

答案 0 :(得分:0)

在添加ContentControl后,内置了一个事件处理程序:

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

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

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

像魅力一样。