For a macro that handles the reformatting of text sourced from a wide range of material, including PDFs emails & web pages, see:
https://www.msofficeforums.com/word/...html#post32907
That may also resolve your issue with 'strange space characters get through from time to time in front of the word'.
As for a macro to capitalise words in scenarios like you said, you might try something along the lines of:
Code:
Sub Demo()
Application.ScreenUpdating = False
Dim Para As Paragraph
For Each Para In ActiveDocument.Paragraphs
With Para.Range
.End = .End - 1
If .ComputeStatistics(wdStatisticWords) < 3 Then
.Text = Trim(UCase(.Text))
End If
End With
Next
Application.ScreenUpdating = False
End Sub
The other examples require nothing more complicated than a Find/Replace. For example:
Find = ^pprofessional experience^p
Replace = ^pPROFESSIONAL EXPERIENCE^p
such processing could be incorporated into a macro based on the one in the above link.