Интересует использование команды 'Разделить список' с помощью макроса только у списков в выбранном фрагменте текста.
Команда 'Разделить список' запускается из контекстного меню. Контекстное меню запускается щелчком правой мыши по маркеру списка или просто внутри пункта списка.
Команда 'Разделить список' есть у маркированных списков. Но в официальной справке ещё упоминается нумерованный список, но для нумерованного списка в контекстном меню нет пункта 'Разделить список'.
Макрос
Sub Макрос()
Dim ListPars As ListParagraphs, i As Long
'1. Отключение монитора. Может быть это ускорит макрос и чтобы не мерцало.
Application.ScreenUpdating = False
'2. Запоминаем выделенные пункты списка, чтобы потом не обращаться к объекту 'Select',
' т.к. метод 'SeparateList' будет изменять выделение.
Set ListPars = Selection.Range.ListParagraphs
'3. Включение перехватчика ошибок. Ошибка будет в этих случаях:
'1) если перед пунктом списка нет пункат списка;
'2) если пункт уже отделён.
On Error Resume Next
'4. Отделение каждого пункта в отдельный список.
' Двигаемся по всем пунктам списка в выделенном фрагменте.
' Используется цикл с 'i', т.к. 'For Each' двигается в непредсказуемом
' направлении, а не сверху вниз по пунктам.
For i = 1 To ListPars.Count
' Отделение пункта от вышестоящего.
ListPars(i).SeparateList
Next i
'5. Включение перехватчика ошибок.
On Error GoTo 0
'6. Включение монитора.
Application.ScreenUpdating = True
End Sub
Спасибо.