Word VBA Макросы: Как убрать вторые дефисы в списке?

Автор Helen, 23 октября 2019, 13:29

Helen

У меня есть несколько документов, где есть неправильные списки. Пример:

-   -   практическое занятие;
-   -   лабораторное занятие;
-   -   курсовая работа (проект); и т.п.

Причем первые дефисы - это элементы маркированного списка, а вторые это просты дефисы. Таких строк очень много! Как мне удалить макросом все вторые дефисы в таких списках?
Или подскажите как определить, какой самый первый символ в маркированном списке (кроме самого маркера).

[вложение удалено администратором]

Администратор

Макрос
Sub Макрос()

    Dim rng As Range
    Dim i As Long
   
   
    ' Отключение монитора. Может это ускорит макрос.
    Application.ScreenUpdating = False
   
    ' Движение по абзацам, в которых есть список.
    For i = 1 To ActiveDocument.ListParagraphs.Count
        ' Присваиваем имя "rng" первому символу абзаца.
        Set rng = ActiveDocument.ListParagraphs(i).Range.Characters(1).Duplicate
        ' Если первый символ - это дефис.
        If rng.Text = "-" Then
            ' Включаем в рейндж правые пробелы и табуляцию, чтобы их тоже удалить.
            rng.MoveEndWhile Cset:=" " & Chr(9)
            ' Удаление полученного фрагмента.
            rng.Delete
        End If
    Next i
   
    ' Сообщение.
    Application.ScreenUpdating = True
    MsgBox "Готово.", vbInformation
   
End Sub
[свернуть]

Helen