Thank you Paul, this provided me with a way of putting in place a couple of minor tweaks to fit. It does indeed remove the pesky extra spaces.
The only issue that I have is that further up the sub, which I am using to ensure that only single spaces are used between words, after commas and question marks, it will still leave the space. If I comment out the find / replace for full stops, it removes the space. I'm really not sure what to do to make all this work. I appreciate that this has moved the original query of my post, but I really didn't think that it would affect things as it has.
Here is my full sub, with commented out part for placing single space after any full stop :-
Private Sub FixSpacing(CCtrl As ContentControl)
Dim oRng As Range
With CCtrl.Range
' Put single space after full stop
'With .Find
' .ClearFormatting
' .Replacement.ClearFormatting
' .Text = "."
' .Replacement.Text = ". "
' .Forward = True
' .Format = False
' .Wrap = wdFindContinue
' .MatchWildcards = True
' .Execute Replace:=wdReplaceAll
' End With
' Put single space after comma
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = ","
.Replacement.Text = ", "
.Forward = True
.Format = False
.Wrap = wdFindContinue
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
' Put single space after question mark
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "[\?]"
.Replacement.Text = "? "
.Forward = True
.Format = False
.Wrap = wdFindContinue
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
' Remove extra blank spaces
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "([^s ])@[^s ]"
.Replacement.Text = " "
.Forward = True
.Format = False
.Wrap = wdFindContinue
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
' Remove trailing spaces
With CCtrl
Select Case .Type
Case wdContentControlText, wdContentControlRichText
Do While .Range.Characters.Last = " "
.Range.Characters.Last.Text = vbNullString
Loop
Case Else
End Select
End With
End With
lbl_Exit:
Exit Sub
End Sub