You really should define a suitable Style for your Bullet paragraphs instead of overriding Word's Style definitions for the underlying paragraphs. You then wouldn't need a macro for the formatting; you'd do it all via the Style definition. That is how Word is supposed to be used.
Control of the last character in each list could then be done via a Find/Replace macro that looks for instances of that Style. For example:
Sub Demo()
Application.ScreenUpdating = False
Const StrSty As String = "Bullet"
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "^p"
.Style = StrSty
.Replacement.Text = ""
.Forward = True
.Format = True
.Wrap = wdFindStop
.MatchWildcards = False
.Execute
End With
Do While .Find.Found
If .End = ActiveDocument.Range.End Then
If .Characters.First.Previous Like "[,.;:]" Then
.Characters.First.Previous = "."
Else
.InsertBefore "."
End If
Exit Do
End If
If .Paragraphs.First.Next.Style = StrSty Then
If .Characters.First.Previous Like "[,.;:]" Then
.Characters.First.Previous = ";"
Else
.InsertBefore ";"
End If
Else
If .Characters.First.Previous Like "[,.;:]" Then
.Characters.First.Previous = "."
Else
.InsertBefore "."
End If
End If
.Collapse wdCollapseEnd
.Find.Execute
Loop
End With
Application.ScreenUpdating = True
End Sub
where 'Bullet' is your Bullet Style's name.