Как удалить все комментарии из документа активного писателя

Я пытаюсь написать макрос на своем OpenOffice Writer, чтобы удалить все комментарии из активного текстового документа, поэтому код, который я на самом деле исследовал и соединил вместе, можно найти ниже.

Sub RemoveAllComments()

    Dim i as Integer

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

End sub

Мой компилятор выдает мне ошибку "Object variable not set", и я не уверен, как это относится к коду, который я собрал. Я действительно новичок в этом, и я даже не знаю, что To 1 Step -1 даже означает!

Буду очень признателен за вашу помощь!

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.

Другие вопросы по тегам