2013-09-12 3 views
1

Я пытаюсь написать макрос в моем 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 

Мой компилятор дает мне «Переменный не установлено» ошибку, и я не уверен, как это относится к коду я мощеный вместе. Я действительно новичок в этом, и я даже не знаю, что означает To 1 Step -1!

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

+0

The 'Step -1' итерацию назад по списку, удаление последнего элемента каждый раз. Альтернативой является удаление первого элемента n раз. –

+0

OpenOffice? Или MS Word? –

+0

Вот однострочный код, который работает в MS Word 'ActiveDocument.DeleteAllComments'. Если это OpenOffice, попробуйте ... или, возможно, 'doc.DeleteAllComments', у меня нет OO, поэтому я не могу его протестировать –

ответ

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 

The Count To 1 Step -1 говорит, чтобы начать в Count и считать в обратном порядке, чтобы 1 с шагом 1.

+0

Привет, Патрик, Сиддхарт и JM, Большое спасибо за ваш вход !!! Я пробовал код JMstoker, и он работает как шарм. Большое большое спасибо!!! С наилучшими пожеланиями, Jack – user965480

Смежные вопросы