Thank you Greg and Paul.
My original macro was made with the intent of trying to skip over the cases that normally would not be an issue, like where a paragraph ends with a full stop, or if there was bold text, due to a heading etc. The issue that I encountered was the replacement leaving double spaces and the format bleed. Both these things you have fixed and so as it is it works just fine for current task.
However the latter macro would be one I would use on a different job, that perhaps did not include footnote and page numbers that are left in the ocr text that have to be dealt with as I went along....
I have another version where I can choose to add punctuation to include at runtime taken from a textbox on my form..
So for me it is using the macro for the job, and I find each has their use and flexibility.
It is also beneficial to set bWholeDoc = False so that it will start at cursor position.
I am sure these macros will be helpful to others.
Dim bWholeDoc As Boolean bWholeDoc = False
Set oRng = ActiveDocument.Content
If Not bWholeDoc Then Set oRng = selection.Range
Also I found it beneficial to add a screen scroll on find to the macro
With oRng.Find .text = Chr(13) & "{1,}"
.MatchWildcards = True
Do While .Execute
With oRng
Call SelectionScrollIntoMiddleOfView
If .End < ActiveDocument.Range.End Then
Do While oRng.Characters.Last.Next Like "[" & Chr(32) + Chr(160) + vbCr & "]" And .End <> ActiveDocument.Range.End
.End = .End + 1
If .End = ActiveDocument.Range.End Then Exit Do
Loop
End If
Sub SelectionScrollIntoMiddleOfView()'https://answers.microsoft.com/en-us/msoffice/forum/msoffice_word-msoffice_custom-mso_2010/centre-selected-text-in-the-middle-of-the-screen/84ab25fe-9570-4b55-91bd-4b11a04bb99b?auth=1
Dim pLeft As Long
Dim pTop As Long, lTop As Long, wTop As Long
Dim pWidth As Long
Dim pHeight As Long, wHeight As Long
Dim Direction As Integer
wHeight = PixelsToPoints(ActiveWindow.Height, True)
ActiveWindow.GetPoint pLeft, wTop, pWidth, pHeight, ActiveWindow
ActiveWindow.GetPoint pLeft, pTop, pWidth, pHeight, selection.Range
Direction = Sgn((pTop + pHeight / 2) - (wTop + wHeight / 2))
Do While Sgn((pTop + pHeight / 2) - (wTop + wHeight / 2)) = Direction And (lTop <> pTop)
ActiveWindow.SmallScroll Direction, down
On Error Resume Next
lTop = pTop
ActiveWindow.GetPoint pLeft, pTop, pWidth, pHeight, selection.Range
Loop
End Sub