Создание списка уникальных слов

Исао интересуется, есть ли способ легко составить список всех уникальных слов в документе. Ему не нужно знать, сколько раз встречается каждое слово; ему просто нужен список уникальных слов. Кроме того, варианты одного и того же слова в верхнем и нижнем регистре должны считаться одним и тем же словом.

Для этого нет встроенной функции или инструмента Word. Однако в VBA вы можете получить доступ к коллекции слов, которая включает все слова в документе. Имея это в виду, вы можете создать макрос, который создает отсортированный список уникальных слов в документе, а затем добавляет эти слова в конец документа.

 Sub UniqueWordList () Dim wList As New  Коллекция Dim wrd Dim chkwrd Dim sTemp As String Dim k As Long For each wrd In ActiveDocument.Range.Words sTemp = Trim (LCase (wrd)) If sTemp> = "a" And sTemp  sTemp Then wList.Add Item: = sTemp, Before: = k GoTo nw End If Next chkwrd wList.Add Item: = sTemp End Ifnw: Next  wrd sTemp = "В документе перед этим резюме есть" & ActiveDocument.Range.Words.Count & "слова" sTemp = sTemp & ", но там" sTemp = sTemp & "только" & wList.Count & "уникальны  слова ".  ActiveDocument.Range.Select Selection.Collapse Direction: = wdCollapseEnd Selection.TypeText vbCrLf & sTemp & vbCrLf Для каждого chkwrd In wList Selection.TypeText chkwrd & vbCrLf Next chkwrdEnd Sub 

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

Макрос можно легко изменить для удовлетворения различных потребностей. Например, вы можете заставить макрос вставлять список слов в отдельный документ, а не в конец текущего документа. Все, что вам нужно сделать, это вставить эту строку перед выходящей строкой, показанной второй здесь:

 sTemp = "There are" & ActiveDocument.Range.Words.Count & "words" sTemp = sTemp &  "in" & ActiveDocument.Name & ", но там" sTemp = sTemp & "- это только" & wList.Count & "уникальные слова."  Documents.Add ActiveDocument.Range.Select Selection.Collapse Direction: = wdCollapseEnd Selection.TypeText vbCrLf & sTemp & vbCrLf Для каждого chkwrd In wList Selection.TypeText chkwrd & vbCrLf Next chkwrdEnd Sub >  только одно существенное изменение в макросе: добавление метода «Documents.Add» для создания нового документа для сводки..  

Для некоторых других идей по извлечению слов из документа, включая макросы, которые учитывают частоту слов, вы можете обратиться к этому совету: Создание счетчика вхождений слов.

Оцените статью
Frestage.ru
Добавить комментарий