У Роберта есть папка с множеством документов. Ему нужен способ извлечь все слова с ошибками из документов и поместить эти слова в новый документ.

К счастью, Word делает это относительно легко с помощью макроса.

Это связано с тем, что орфографические ошибки доступны в VBA путем изучения коллекции .SpellingError. Каждый элемент в этой специальной коллекции представляет собой орфографическую ошибку в документе.

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

Sub CheckFolderForSpellErrors()

'Copy all misspelled words in each document     'from one directory to a new document.

'Also lists all documents that have no spelling errors

Dim cWords As New Collection     Dim cDocs As New Collection     Dim vItem As Variant     Dim rng As Range     Dim docSourse As Document     Dim docNew As Document     Dim vDirectory As String     Dim vFile As String     Dim bNoSpellingErrors As Boolean

Application.ScreenUpdating = False

vDirectory = "C:\MyFolder\"           ' Path to check

' Find first file to check     vFile = Dir(vDirectory & ".doc")



Do While vFile <> ""

Documents.Open FileName:=vDirectory & vFile         Set docSource = ActiveDocument

If docSource.SpellingErrors.Count > 0 Then             cWords.Add Item:="Spelling errors found in " & vFile & vbCrLf

' add each word to the collection             For Each rng In docSource.SpellingErrors                 cWords.Add Item:=rng.Text & vbCrLf             Next         Else ' doc has no spelling errors             bNoSpellingErrors = True             cDocs.Add vFile & vbCrLf         End If

ActiveDocument.Close (wdDoNotSaveChanges)

vFile = Dir     Loop

Set docNew = Documents.Add

For Each vItem In cWords         Selection.TypeText vItem     Next

If bNoSpellingErrors Then         Selection.TypeText "These documents have no spelling errors." & vbCrLf

For Each vItem In cDocs             Selection.TypeText vItem & vbCrLf         Next     End If

Application.ScreenUpdating = True End Sub

Макрос использует команду Dir для поиска любых файлов в указанной папке (переменная vDirectory), которые заканчиваются на некоторый вариант «doc». Каждый из этих файлов по очереди загружается в Word. Во время загрузки коллекция .SpellingErrors проверяется на наличие ошибок. Если да, то текст неправильно написанных слов добавляется в коллекцию cWords. Если нет, то имя файла добавляется в коллекцию cDocs.

В коллекциях cWords или cDocs нет ничего особенного; они были созданы просто для хранения любых орфографических ошибок и имен файлов, обнаруженных при проверке файлов. Макрос с такой же легкостью мог бы использовать массивы переменных вместо коллекций.

При запуске этого макроса следует помнить о нескольких вещах.

Во-первых, запуск может занять некоторое время, в зависимости от количества документов в папке и длины каждого из этих документов. Когда я запускал макрос, я делал это с папкой, содержащей 9 документов, в среднем около 97 страниц на документ. Макросу потребовалось чуть менее 8 минут для завершения работы, и пока он работал, я больше ничего не мог делать в Word. (На самом деле, вы можете легко задаться вопросом, не зависла ли ваша система.)

Также следует иметь в виду, что вывод может быть довольно длинным и казаться избыточным. Это связано с тем, что слова с ошибками могут появляться несколько раз в коллекции .SpellingErrors. Например, предположим, что у вас есть документ, содержащий слово «Cftype», которое явно помечено как написанное с ошибкой. Если слово используется в документе 30 раз, оно будет помечено 30 раз и, следовательно, 30 раз попадет в список орфографических ошибок. Хотя это выходит за рамки этого совета, вы можете изменить макрос, чтобы проверить, не было ли слово ранее помечено как ошибочное, а затем добавить его, только если это уникальная ошибка.

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (13488) относится к Microsoft Word 2007, 2010, 2013 и 2016.