Another way:
Code:
Sub Demo()
Application.ScreenUpdating = False
With ActiveDocument.Range
.InsertBefore " "
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = True
.Text = ".([0-9]{1,3}.)"
.Replacement.Text = ". \1"
.Execute Replace:=wdReplaceAll
.Text = " ([a-e].)"
.Replacement.Text = "^p\1"
.Execute Replace:=wdReplaceAll
.Replacement.Style = "Strong"
.Text = " ([0-9]{1,3}.)"
.Execute Replace:=wdReplaceAll
End With
.Characters.First.Delete
End With
Application.ScreenUpdating = True
End Sub
With the additional 3 lines after '.MatchWildcards = True', it'll handle the questions where the space was missing before the question number.