Since it is a macro it doesn't matter if it takes a few extra passes
Code:
Sub DPU_TimeFormat()
Dim Rng As Range
Application.ScreenUpdating = False
Set Rng = ActiveDocument.Range
With Rng.Find
.MatchWildcards = True
'Delete periods in a.m./p.m.
.Text = "([0-9]) ([APap]).([mM])." 'with space between number and a/p
.Replacement.Text = "\1\2\3"
.Execute Replace:=wdReplaceAll
.Text = "([0-9]) ([APap]).([mM])"
.Replacement.Text = "\1\2\3"
.Execute Replace:=wdReplaceAll
.Text = "([0-9]) ([APap])([mM])>" 'without space between number and a/p
.Replacement.Text = "\1\2\3"
.Execute Replace:=wdReplaceAll
.Text = "([0-9])AM>" 'AM to am
.Replacement.Text = "\1am"
.Execute Replace:=wdReplaceAll
.Text = "([0-9])PM>" 'PM to pm
.Replacement.Text = "\1pm"
.Execute Replace:=wdReplaceAll
'Change period for colon in times
.Text = "([0-9]{1,2}).([0-9]{2})([ap])m"
.Replacement.Text = "\1:\2\3m"
.Execute Replace:=wdReplaceAll
End With
Application.ScreenUpdating = True
End Sub