Добавить в корзинуПозвонить
Найти в Дзене

Работа с макросами: макрос для выгрузки комментариев в документ ворд

Алгоритм настройки и выполнения макроса Sub CopyCommentsToNewDoc() Dim oComm As Comment Dim oNewDoc As Document Dim oOldDoc As Document Set oOldDoc = ActiveDocument If ActiveDocument.Comments.Count > 0 Then Set oNewDoc = Documents.Add Else Exit Sub For Each oComm In oOldDoc.Comments With oNewDoc .Range.InsertAfter oComm.Scope.Text .Comments.Add .Range(.Paragraphs.Last.Range.Start, .Paragraphs.Last.Range.End - 1), oComm.Range.Text .Comments.Item(.Comments.Count).Author = oComm.Author .Comments.Item(.Comments.Count).Initial = oComm.Initial .Comments.Item(.Comments.Count).Scope.LanguageID = wdFrench .Range.InsertAfter ChrW(160) & "(примечание: " & oComm.Range.Text & ")" .Range.InsertParagraphAfter End With Next End Sub

Алгоритм настройки и выполнения макроса

  1. Откройте документ Microsoft Word.
  2. Нажмите сочетание клавиш Alt + F11, чтобы открыть окно Microsoft Visual Basic для приложений (VBA).
  3. В меню выберите «Вставка» → «Модуль» — это создаст новый модуль.
  4. Скопируйте код VBA из исходного документа Word и вставьте его в окно созданного модуля.
  5. Перед запуском макроса необходимо подключить библиотеку объектов Excel. Для этого в редакторе VBA откройте меню «Инструменты» → «Ссылки».
  6. В открывшемся диалоговом окне «Ссылки» найдите в списке «Библиотека объектов Microsoft Excel» (версия может отличаться). Установите флажок рядом с этой библиотекой и нажмите OK.
  7. Запустите макрос одним из способов:
    нажмите клавишу
    F5;
    либо выберите в меню
    Run → Run Sub/UserForm.
  8. После выполнения макроса Microsoft Word автоматически откроет новую книгу. В ней все комментарии из документа Word будут организованы в виде таблицы.

Макрос (его необходимо скопировать и вставить как есть):

Sub CopyCommentsToNewDoc()

Dim oComm As Comment

Dim oNewDoc As Document

Dim oOldDoc As Document

Set oOldDoc = ActiveDocument

If ActiveDocument.Comments.Count > 0 Then Set oNewDoc = Documents.Add Else Exit Sub

For Each oComm In oOldDoc.Comments

With oNewDoc

.Range.InsertAfter oComm.Scope.Text

.Comments.Add .Range(.Paragraphs.Last.Range.Start, .Paragraphs.Last.Range.End - 1), oComm.Range.Text

.Comments.Item(.Comments.Count).Author = oComm.Author

.Comments.Item(.Comments.Count).Initial = oComm.Initial

.Comments.Item(.Comments.Count).Scope.LanguageID = wdFrench

.Range.InsertAfter ChrW(160) & "(примечание: " & oComm.Range.Text & ")"

.Range.InsertParagraphAfter

End With

Next

End Sub