Как удалить все комментарии из документа активного писателя
Я пытаюсь написать макрос на своем 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.