1

Тема: Получение полного номера элемента списка

Никак не могу найти функцию, чтобы получить полный номер элемента списка. Нумерация автоматическая вордовская, не поля. В номер уровня следующего порядка добавляется номер предыдущего уровня.
Т.е. Имеются списки вида
1
1.1
2
2.1
2.1.1
Необходимо получить полный номер, т.е. 2.1.1, например. Знаю о возможности выделить номер через .SelectNumber у элемента ListParagraphs., но свойство Selection.range.text возвращает пустую строку.
Можно перебрать все абзацы нумерованного списка и получать их .ListLevelNumber и .ListFormat.ListValue и на основе этого составлять каждый номер, но это нужен сначала перебор, чтобы узнать какие были до данного номера. Конвертировать в текст тоже не хотелось бы. Надеюсь, что есть способ попроще.

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

2

Re: Получение полного номера элемента списка

Fck_This пишет:

. . .
Никак не могу найти функцию, чтобы получить полный номер элемента списка.
. . .

Попробуйте в объекте типа Range извлечь ListFormat.ListString, например:

Sub ShowListString()
Dim lsr As String
Set rg = Selection.Range
lsr = rg.ListFormat.ListString
End Sub

Для ненумерованной строки lsr будет показывать пустую строку, для нумерованной - номер.

3

Re: Получение полного номера элемента списка

Добрый день,

Фрагмент кода поиска номера нумерации, введенного пользователем в тексте для установки перекрестной ссылки.


With Selection

number = Trim(Selection.Text)
myHeadings = ActiveDocument.GetCrossReferenceItems(wdRefTypeNumberedItem)
              
              For i = 1 To UBound(myHeadings)
                If Mid(Trim(myHeadings(i)), 1, Len(number)) = number Then
                        .InsertCrossReference ReferenceType:="Numbered item", _
                        ReferenceKind:=wdNumberRelativeContext, ReferenceItem:=i, _
                        InsertAsHyperlink:=True, IncludePosition:=False, SeparateNumbers:=False, SeparatorString:=" "
                         MsgBox "Перекрестная ссылка успешно установлена!", vbOKOnly
                         
                        Exit For
                       End If
"Ты не умничай, ты пальцем покажи"
"Кто поработал с многоуровневым списком в Ворде, тот в цирке не смеется"