- Код: Выделить всё
Sub ProcessWordDoc()
Dim colWords As New Collection
Dim objWord As Word.Application
Dim objDoc As Word.Document
Set objWord = New Word.Application
Set objDoc = objWord.Documents.Open(path + "\" + filename)
For Each wrd In objDoc.Words
If wrd.Font.Color = 255 Then
colWords.Add (objDoc.Words(nword))
End If
Next
objDoc.Close True
objWord.Quit True
Set objDoc = Nothing
Set objWord = Nothing
End Sub
Всё это у меня работает внутри макроса в Outlook.
Цель метода - собрать все слова, выделенные красным в ону коллекцию.
В файле вордовском 17 страниц. Вышеизложенный процесс обработки длится около 10 минут, пожирая все ресурсы, причем после завершения метода остается висеть один (из двух! запущенных в коде) процесс winword.exe
Вопрос № 1. Такое пожирание ресурсов - это нормально для vba или здесь что-то не так? (celeron 2000)
Вопрос № 2. Цель моей проги - разбить вордовский файл на несколько, основываясь на выделенных в красный цвет метках. Файл этот вордовский приходит в почте (поэтому всё это есть часть макроса Outlook). Можно ли как-нибудь быстрее распарсить вордовский файл основываясь на метках в его содержимом?