通过Word中的VBA添加注释包括页码字段

时间:2013-05-01 18:35:39

标签: vba ms-word word-vba

我有一个将注释气球添加到我的Word文档中的过程,但我注意到它还添加了一个页码字段(通过选择注释气球并从上下文菜单中选择更新字段)。只有在通过VBA添加注释时才会发生这种情况,而不是在我手动创建注释时。有没有办法可以禁止将页码添加到评论中?

以下代码摘录:

With Selection.Find
    .Text = "Approvals"
    .Forward = True
    .Execute

    If .Found = True Then
        Selection.Comments.Add Range:=Selection.Range, Text:="My comment text"
    End If
End With

2 个答案:

答案 0 :(得分:1)

这是我用来删除这些页面字段的内容。在运行大部分代码之后,就在End Sub之前,我插入以下内容:

For Each f In ActiveDocument.StoryRanges(wdCommentsStory).Fields
    If f.Type = wdFieldPage Then
        f.Delete
    End If
Next

它可能不是很漂亮,但它确实起作用了。不幸的是,我认为没有办法根据评论作者进行过滤。

For Each c In ActiveDocument.Comments
   If c.Author = "Macro Name" Then 'Assuming you set it when you created the comment
        Debug.Print c.Range.Fields.Count 'This prints a 0
    End If
Next

答案 1 :(得分:0)

如果您在注释中设置了域代码,则在删除内容方面会更具选择性。它旨在在添加特定评论后立即运行。但是,您可以将与上述类似的内容组合在一起以处理所有注释。

If comment.range.fields.count > 0 Then
    If comment.range.fields.Item(1).Type = wdFieldPage Then
        comment.range.fields.Item(1).Delete
    End If
End If