Código
Option Explicit Function uCaseCorrect(txt As String) As String Dim sFrase As String, sText As String Dim pos As Long, i As Long, k As Long Dim signo(4) As String signo(0) = "¡": signo(2) = "." signo(1) = "¿": signo(3) = "!": signo(4) = "?" sText = UCase$(Left$(txt, 1)) sFrase = sText & Mid$(txt, 2) uCaseCorrect = sFrase For i = 0 To 4 If InStr(1, sFrase, signo(i)) <> 0 Then k = 1 Do pos = InStr(k, sFrase, signo(i)) While Mid$(sFrase, pos + 1, 1) = " " pos = pos + 1 Wend sText = UCase$(Mid$(sFrase, pos + 1, 1)) & Mid$(sFrase, pos + 2) sFrase = Left$(sFrase, pos) & sText k = k + 1 Loop While InStr(k, sFrase, signo(i)) <> 0 End If Next i uCaseCorrect = sFrase End Function Private Sub Form_Load() Debug.Print uCaseCorrect("¡hola! ¿como andas? espero que bien che!!! Que pases bien entonces. chau. bye!") End Sub
Salida:
Citar
¡Hola! ¿Como andas? Espero que bien che!!! Que pases bien entonces. Chau. Bye!