Разбить предложения в MS WORD

 

Sub RazbitPredlozhenie()
    '-------------------------------------------
    ' Макрос разбивает предложение в позиции курсора
    ' Не сохраняет целостность слов
    ' Вставляет точку и делает первую букву второго предложения заглавной
    '-------------------------------------------
    
    Dim cursorPos As Long
    Dim rng As Range
    Dim i As Long
    Dim foundLetter As Boolean
    
    ' Проверяем, что установлен курсор (а не выделен текст)
    If Selection.Type = wdSelectionIP Then
        ' Сохраняем позицию курсора
        cursorPos = Selection.Start
        
        ' Вставляем точку и пробел в позиции курсора
        Selection.TypeText ". "
        
        ' Ищем первую букву после точки и пробела
        foundLetter = False
        i = cursorPos + 2
        
        ' Перебираем символы, пропуская пробелы и другие не-буквенные символы
        While i < ActiveDocument.Range.End And Not foundLetter
            Set rng = ActiveDocument.Range(i, i + 1)
            
            ' Проверяем, что это не пробел, не табуляция, не конец строки
            If rng.Text <> " " And rng.Text <> vbCr And rng.Text <> vbLf And rng.Text <> vbTab Then
                ' Делаем этот символ заглавным
                rng.Case = wdUpperCase
                foundLetter = True
            End If
            
            i = i + 1
        Wend
        
        ' Устанавливаем курсор после точки и пробела
        Selection.Start = cursorPos + 2
        Selection.End = Selection.Start
        
    Else
        ' Если выделен текст, а не установлен курсор
        MsgBox "Установите курсор в нужное место в тексте" & vbCrLf & _
               "(не выделяйте текст).", vbInformation, "Внимание"
    End If
End Sub