MaDriver пишет:...
Подскажите как найти одиночную букву в тексте, допустим "п.", но так чтобы это была не последняя буква в крайнем слове предложения (например "циклоп."?
...
Попробуйте перебрать все слова в целевом диапазоне. Если контекст в очередном слове обнаружен и это не последнее слово в предложении (последним "словом" в предложении с точки зрения коллекции Words всегда должна быть точка), то это искомый контекст, и тогда его нужно выделить (или еще как-то обработать). Вот пример (стартовая программа - t_SDTCATEOS).
Sub SelectDefiniteTrailingCharactersNotAtTheEndOfSentence(trailing_chars As String, rgs As range)
Dim sent As Object
Dim sent_wdc As Long
Dim wtchead As String
Dim wtc As String
Dim iwtchead As Long
Dim wtcfound As Boolean
Dim wtcrgsel As range
Dim iwd As Long
wtcfound = False
Set wtcrgsel = Selection.range
wtchead = trailing_chars
For Each sent In rgs.Sentences
sent_wdc = sent.Words.count
For iwd = 1 To sent_wdc
wtc = Trim$(sent.Words(iwd).Text)
iwtchead = InStr(wtc, wtchead)
If iwtchead > 0 Then 'chars found in the word
If Not (iwd = sent_wdc - 1) Then 'not last word in the sentence
wtcfound = True
wtcrgsel.SetRange Start:=sent.Words(iwd).Start + iwtchead - 1, _
End:=sent.Words(iwd).Start + iwtchead - 1 + Len(wtchead)
wtcrgsel.Select
GoTo e_SDTCATEOS
End If
End If
Next iwd
O = 0
Next
e_SDTCATEOS:
If Not wtcfound Then
MsgBox "Text '" & trailing_chars & "' is not found"
End If
End Sub
Sub t_SDTCATEOS()
SelectDefiniteTrailingCharactersNotAtTheEndOfSentence "п", Selection.range
End Sub