Moreschi 14/3/2017, 12:57
Olá Alexandre, obrigado pela resposta.
Pessoal, com base em uma rotina, fiz uma ampliação e o resultado foi muito bom.
minúscula volta minúscula e maiúscula volta maiúscula.
Vejam abaixo:
Function SemAcentos(sString As String)
Dim X As Integer
Dim sStringFinal As String
Dim letra() As String
For X = 0 To Len(sString) - 1
ReDim Preserve letra(X)
letra(X) = Mid(sString, X + 1, 1)
'MsgBox Asc(letra(X))
If Asc(letra(X)) >= 224 And Asc(letra(X)) <= 228 Or Asc(letra(X)) >= 232 And Asc(letra(X)) <= 239 Or Asc(letra(X)) >= 242 And Asc(letra(X)) <= 247 Or Asc(letra(X)) >= 249 And Asc(letra(X)) <= 253 Or Asc(letra(X)) = 231 Or Asc(letra(X)) = 241 Then 'Acentuados minúsculos
Select Case letra(X)
Case "ã", "á", "â", "à", "ä"
letra(X) = "a"
Case "é", "ê", "è", "ë"
letra(X) = "e"
Case "í", "ì", "î", "ï", "ò", "ö"
letra(X) = "i"
Case "ó", "ô", "õ"
letra(X) = "o"
Case "ü", "ú", "ù", "û"
letra(X) = "u"
Case "ç"
letra(X) = "c"
Case "ñ"
letra(X) = "n"
Case "ý"
letra(X) = "y"
Case Else
End Select
End If
If Asc(letra(X)) = 106 Or Asc(letra(X)) >= 192 And Asc(letra(X)) <= 196 Or Asc(letra(X)) >= 199 And Asc(letra(X)) <= 206 Or Asc(letra(X)) >= 209 And Asc(letra(X)) <= 214 Or Asc(letra(X)) >= 217 And Asc(letra(X)) <= 221 Then 'Acentuados Maiúsculos
Select Case letra(X)
Case "Ã", "Á", "Â", "Ä", "À"
letra(X) = "A"
Case "É", "Ê", "Ë", "È"
letra(X) = "E"
Case "Í", "Ì", "Î"
letra(X) = "I"
Case "Ó", "Ô", "Õ", "Ö", "Ò"
letra(X) = "O"
Case "Ü", "Ú", "Ù", "Û"
letra(X) = "U"
Case "Ç"
letra(X) = "C"
Case "Ñ"
letra(X) = "N"
Case "Ý"
letra(X) = "Y"
Case Else
End Select
End If
Next X
For X = 0 To Len(sString) - 1
sStringFinal = sStringFinal + letra(X)
Next X
SemAcentos = sStringFinal
end function