如何从活动的编写器文档中删除所有注释

时间:2013-09-12 09:56:42

标签: vba openoffice-writer openoffice-basic

我正在尝试在我的OpenOffice Writer上编写一个宏来删除活动word文档中的所有注释,到目前为止,我实际研究和拼凑在一起的代码可以在下面找到。

Sub RemoveAllComments()

    Dim i as Integer

    For i = doc.Comments.Count To 1 Step -1
        doc.Comments(i).Delete
    Next i

End sub

我的编译器给了我一个“对象变量未设置”错误,我不确定这是如何应用于我拼凑在一起的代码。我对此很陌生,我甚至不知道To 1 Step -1甚至意味着什么!

我真的很感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

对于OpenOffice Writer 4.0.0,确认以下代码将删除文档中的所有注释。

sub RemoveAllComments2
    rem ----------------------------------------------------------------------
    rem Define variables
    dim document   as object
    dim dispatcher as object
    rem ----------------------------------------------------------------------
    rem Get access to the document
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    rem ----------------------------------------------------------------------
    dispatcher.executeDispatch(document, ".uno:DeleteAllNotes", "", 0, Array())
end sub

您的原始代码适用于Microsoft Word,我也提供了解决方案。对于Word 2007,2010和2013,以下代码将删除活动文档中的所有注释。

Sub RemoveAllComments()
    Dim n As Long
    For n = ActiveDocument.Comments.Count To 1 Step -1
    ActiveDocument.Comments(n).Delete
    Next 'n
End Sub

Count To 1 Step -1说是从Count开始,倒数到1,增量为1。