Мне нужно создать индекс в конце документа MS Word, в котором перечислены все слова, используемые в документе, номер страницы, где он используется в алфавитном порядке. Могу ли я сделать это со встроенными возможностями индекса? Если да, то как мне это заняться? Или мне нужен макрос, и если да, то кто-нибудь может мне помочь со сценарием?Индекс всех слов, используемых в документе MS Word
1
A
ответ
2
Это требуется навсегда на больших документах, но генерирует поля Индекса, необходимые для создания Индекса в документе слова. После запуска этого макроса вы можете сделать References > Insert Index
, чтобы иметь фактический индекс в вашем документе.
Dim colWords as Collection
Set colWords = New Colection
'add words you don't want to index
colWords.Add "and"
colWords.Add "you"
Dim wrd As Range
For Each wrd In ActiveDocument.Words
'only if we have 3 chars we index
If Len(Trim(wrd.Text)) > 2 Then
' prevent the field from being Indexed as well...
Dim infield As Boolean
infield = False
Dim fld As Field
For Each fld In ActiveDocument.Fields
If (wrd.Start >= fld.Code.Start And wrd.End <= fld.Code.End) Then
infield = True
Exit For 'break out
End If
Next
If (Not infield) Then
' check if we already indexed?
Dim findWord as String
findWord = LCASE(wrd.Text)
For Each cached in colWords
if cached = findWord Then
infield = True
Exit For 'break out
end If
Next
If (Not infield) Then
ActiveDocument.Indexes.MarkAllEntries Range:=wrd, Entry:=wrd.Text, _
EntryAutoText:=wrd.Text, CrossReference:="", CrossReferenceAutoText:="", _
BookmarkName:="", Bold:=False, Italic:=False
colWords.Add findWord
End If
End If
End If
Next
Смежные вопросы
- 1. MS Word Macro для увеличения всех чисел в текстовом документе
- 2. Поиск всех глаголов в документе Microsoft Word
- 3. Подсчет слов в документе Word, включая сноски
- 4. Удаление определенной строки в документе MS Word
- 5. Прыжки к разделу в документе MS Word
- 6. Java: размещение заголовка в документе MS Word
- 7. Замена слов в документе
- 8. Редактирование стиля всех гиперссылок в документе Word
- 9. MS Word 2007 - целевое количество слов
- 10. Добавить текст в документе MS Word с помощью apache POI
- 11. Lucene.NET: Получение всех Условий, используемых в конкретном документе
- 12. Как перебирать список слов в документе MS Word 2010 с помощью VBA?
- 13. В MS Word найти заголовком, под которым таблица в документе
- 14. использовать массив для поиска слов в документе Word
- 15. VBA Сравнение позиций двух слов в документе Word
- 16. getElementByID в документе Word
- 17. Как проверить, является ли слово в документе MS Word AllCaps?
- 18. Гиперссылка на определенную страницу в документе MS Word
- 19. Дополнительные символы пробела в документе MS Word translations document
- 20. Как запрограммировать флажок в документе или шаблоне MS Word 2007?
- 21. Использование VBA для разбора текста в документе MS Word
- 22. Как изменить цвет формул в большом документе MS-Word автоматически?
- 23. Ссылки на приложение ASP.NET в документе MS Word
- 24. Java перейти к разделу в документе MS Word
- 25. set/unset checkbox value с docx4j в документе MS Word
- 26. Как получить текстовые фреймы в документе MS Word через VBA
- 27. получить точку абзаца в многостраничном документе ms word
- 28. Чтобы получить все выбранные элементы в документе MS Word
- 29. Как найти количество выделенных фрагментов текста в документе MS Word
- 30. Как вызвать макрос VBA в другом документе MS Word?
Thanks Rene .. проверит это! – Craig
Есть ли способ ускорить это, поскольку он падает на моей машине с 86-страничным документом? – Craig
Я добавил бедный mans caching с коллекцией, которая уже содержит индексированные слова для этого запуска ... – rene