Я выполняю цикл поиска по подстановочным знакам в MS Word и генерирую список всех найденных значений в новом документе, используя следующий код. Я добавил номера страниц в вывод. Но я не могу придумать, как получить заголовки для искомого вывода. Пожалуйста, предложите.
Образец документа Word:
1 Heading
Text Text Text Text Text
--<Page Break>--
1.1 Heading
Text Text Text Text Text [Reference X1]
1.1.1 Heading
Text Text Text Text Text
Text Text Text Text Text
Text Text Text Text Text
--<Page Break>--
1.2 Heading
Text Text Text Text Text
1.2.1 Heading
Text Text Text Text Text
Text Text Text Text Text [Reference X2]
Text Text Text Text Text [Reference X3]
Заголовки 1, 1.1 и т. д. являются стилями заголовков по умолчанию, используемыми в MS Word. (Для меня название стиля — Заголовок 1, Заголовок 2 и т. д.)
Результат, который я ожидаю, такой же, как и в табличном формате:
| Reference | Heading | Page |
| Reference X1 | 1.1 Heading | 2 |
| Reference X2 | 1.2.1 Heading | 3 |
| Reference X2 | 1.2.1 Heading | 3 |
Код (часть подраздела, который выполняет поиск и запись в таблицу), который я смог написать до сих пор:
With oDoc
Set oRange = .Range
n = 1
With oRange.Find
.Text = "<Reference X[0-9]{1,}>"
.Forward = True
.MatchWildcards = True
Do While .Execute
strFound = oRange
With oTable
.Cell(n+1,1).Range.Text = strFound
.Cell(n+1,3).Range.Text = oRange.Information(wdActiveEndPageNumber)
End With
n = n + 1
Loop
End With
End With
У меня уже есть код для определения этих переменных, создания таблицы и необходимых строк в ней. Меня только смущает, как получить заголовок чуть выше найденного элемента. Проблема в том, что под одним заголовком может быть одна или несколько ссылок XX. Далее уровень заголовка может быть любым. И мне нужны отдельные строки для каждого элемента, найденного с использованием подстановочного знака.