The function you posted appears to be an edited variant of code I've posted in threads such as:
https://www.msofficeforums.com/word/24807-how-do-i-convert-line-text-title.html
https://www.msofficeforums.com/word-...html#post55885
It is not deigned to do as you say you want it to and wouldn't even do as it's supposed to with your modifications. For what you say you want, you could use a macro like:
Code:
Sub Reformat()
Dim i As Long, StrChr As String, StrTmp As String
With Selection
For i = 1 To .Words.Count
StrChr = Left(.Words(i), 1)
If StrChr = LCase(StrChr) Then
StrTmp = StrTmp & LCase(.Words(i))
Else
StrTmp = StrTmp & StrChr & LCase(Mid(.Words(i), 2, Len(.Words(i)) - 1))
End If
Next
.Text = StrTmp
End With
End Sub
PS: When posting code, please use the code tags, indicated by the # button on the posting menu. Without them, your code loses much of whatever structure it had.