Looking for text between two very common characters such as '.' and '?' is bound to produce lots of false positives. It is necessary to narrow the search criteria.
In this example I would simply search for the string and remove the unwanted characters e.g.
Code:
Sub Macro1()
Const strFind As String = ". How are you today?"
Dim sText As String
Selection.HomeKey wdStory
Selection.Find.ClearFormatting
With Selection.Find
Do While .Execute(findText:=strFind, _
MatchWildcards:=False, _
Wrap:=wdFindStop, _
Forward:=True) = True
sText = Replace(Selection.Range, ". ", "")
sText = Replace(sText, "?", "")
'do something with the found text e.g.
MsgBox sText
Loop
End With
lbl_Exit:
Exit Sub
End Sub
but see
Replace using wildcards