Компиляция неправильно написанных слов из документов (Microsoft Word)
У Роберта есть папка с множеством документов. Ему нужен способ извлечь все слова с ошибками из документов и поместить эти слова в новый документ.
К счастью, 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.