properName = StrConv(text, vbProperCase)
'However, be aware that this variant of StrConv also forces a conversion to lowercase 'for all the characters not at the beginning of a word. In other words, "seattle, USA," is 'converted to "Seattle, Usa," which you don't want. You still need to write a custom 'routine, but you can take advantage of StrConv to reduce the amount of code in it: Function ProperCase(text As String) As String Dim result As String, i As Integer result = StrConv(text, vbProperCase) ' restore all those characters that ' were uppercase in the original string For i = 1 To Len(text) Select Case Asc(Mid$(text, i, 1)) Case 65 To 90' A-Z Mid$(result, i, 1) = Mid$(text, i, 1) End Select Next ProperCase = result End Function When using proper names, you sometimes need to capitalize the first letter of each word. For example, you need to convert "john smith" into "John Smith." With VB3, you had to write a custom function to do the job; VB4's versatile StrConv routine, on the other hand, lets you do it with one statement: |