Sub ListLowercaseSemicolon() ' Paul Beverley - Version 17.12.14 ' Add semicolons to bulletted list + lowercase initial char ' Shift-Alt-L trackThis = True addAnd = False checkLength = 10 notThese = ";,. " nowTrack = ActiveDocument.TrackRevisions If trackThis = False Then ActiveDocument.TrackRevisions = False Selection.Expand wdParagraph startStyle = Selection.Style startColour = Selection.Font.Color i = 0 Do endItem = Selection.End - 1 ' select LH end until you meet an alpha character Selection.End = Selection.Start + 1 If UCase(Selection) = LCase(Selection) Then Selection.MoveEnd , 1 If UCase(Selection) = LCase(Selection) Then Selection.MoveEnd , 1 Selection.Range.Case = wdLowerCase ' Get rid of any stray characters you don't want Selection.Start = endItem Do gotOne = False Selection.MoveStart , -1 If InStr(notThese, Selection) > 0 Then Selection.Delete gotOne = True End If Loop Until gotOne = False Selection.InsertAfter ";" ' Now select the next item/para Selection.MoveStart , 3 Selection.Expand wdParagraph nowStyle = Selection.Style nowColour = Selection.Font.Color i = i + 1 If i = checkLength Then myResponse = MsgBox("Continue?", vbQuestion + vbYesNo) If myResponse = vbNo Then Exit Sub i = 0 End If Loop Until nowStyle <> startStyle Or nowColour <> startColour Selection.End = Selection.Start - 1 Selection.Start = Selection.End - 1 If Selection = ";" Then Selection.Delete Selection.MoveStart wdCharacter, -1 If Selection <> "." Then Selection.InsertAfter "." If addAnd = True Then ' Go back to penultimate Selection.Expand wdParagraph Selection.Start = Selection.Start - 1 Selection.End = Selection.Start Selection.TypeText Text:=" and" Selection.MoveStart wdCharacter, -10 If Selection = "; and; and" Then Selection.MoveStart wdCharacter, 5 Selection.Delete End If Selection.MoveStart , 1 If Selection = " and; and" Then Selection.MoveEnd , -5 Selection.Delete End If End If Selection.Start = Selection.End ActiveDocument.TrackRevisions = nowTrack End Sub