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