The following adopts a slightly different approach. Change the first macro to
Code:
Sub FormatPara()
Dim oPara As Paragraph
Dim oRng As Range
For Each oPara In Selection.Paragraphs
Set oRng = oPara.Range
oRng.End = oRng.End - 1
If Len(oRng) > 2 Then
If oRng.Characters(2) = "." Then
oRng.MoveStart 3
oRng.MoveStartWhile Chr(9)
oRng.MoveStartWhile Chr(32)
oRng.MoveStartWhile Chr(160)
End If
If InStr(1, oPara.Range.Text, ":") > 0 Then
oRng.Collapse 1
oRng.MoveEndUntil ":"
End If
TrueTitleCase oRng
oRng.Characters(1).Case = wdUpperCase
End If
Next oPara
lbl_Exit:
Set oPara = Nothing
Set oRng = Nothing
Exit Sub
End Sub