Primera letra mayúscula de cada palabra
Quisiera poner la primera letra en mayúscula de cada palabra y las demás en minúsculas pero sin tener en cuenta, símbolos, números, guiones, signos de exclamación, interrogación etc. Lo intenté con Strvconv(campo, vbpropercase) pero no sirve para lo que necesito.
He encontrado en internet una función excelente del maestro Eduardo Olaz que hace exactamente lo que quiero con las excepciones que digo, pero solo lo realiza en la primera letra de la primera palabra de la cadena y no en las restantes palabras.
Me gustaría adaptar esta función para que hago lo mismo en todas las palabras de la cadena.
La función a adaptar a lo que necesito sería ésta:
Public Function PrimeraLetraMayuscula(ByVal Cadena As String) As String
Dim lngPrimeraLetra
Dim i As Long
Dim bytCaracter As Byte
'Ponemos la cadena a minúsculas
Cadena = LCase(Cadena)
'Buscamos la primera letra
For i = 1 To Len(Cadena)
bytCaracter = Asc(Mid(Cadena, i, 1))
Select Case bytCaracter
' Si el carácter es una letra en minúscula
Case 97 To 122, 154, 156, 158, 224 To 246, 249 To 255
PrimeraLetraMayuscula = Left(Cadena, i - 1) _
& UCase(Chr$(bytCaracter)) _
& Mid(Cadena, i + 1)
Exit Function
End Select
Next i
PrimeraLetraMayuscula = Cadena
End Function