Criei uma função interessante para tirar acentos de vogais e consoantes sem mudar as letras entre maiúsculo minúsculo e resolvi postar.
Tira Números, caracteres especiais.
'--------------------------------------------------------------------
Public Function letras() 'Função para conhecer quais números correspondem a qual letra do alfabeto, caracteres e números.
Dim vStr As String
Dim i As Integer
For i = 1 To 255
vStr = vStr & "Asc(" & i & ") - Chr(" & Chr(i) & "); " & vbTab
If i Mod 5 = 0 Then Debug.Print vStr: vStr = ""
Next
End Function
'--------------------------------------------------------------------
Public Function TiraDaString(vStrLetras As String, vBlTiraLetras, vBlTiraAcentos, vBlTiraCaractEspeciais, vBlTiraNumeros As Boolean) As String '
'By Lauro Ribeiro
'Foi retirada a opção de usar o To dentre as opções do Case por ocorrem erros de causas desconhecidas.
'Para incluir ou retirar caracteres, basta pesquisar seu número com a função Asc(String) e incluir o número no Case de sua categoria.
Dim vItI As Integer
Dim vStrSemAcento, vStrAsc As String
For vItI = 1 To Len(vStrLetras)
vStrAsc = CInt(Asc(Mid(vStrLetras, vItI, 1)))
If vBlTiraAcentos Then
Select Case vStrAsc
'---------Tira Acentos -------------------
Case 192, 193, 194, 195, 196, 197: vStrAsc = 65 'A
Case 199: vStrAsc = 67 'C
Case 200, 201, 202, 203: vStrAsc = 69 'E
Case 204, 205, 206, 207: vStrAsc = 73 'I
Case 209: vStrAsc = 78 'N
Case 210, 211, 212, 213, 214: vStrAsc = 79 'O
Case 138: vStrAsc = 83 'S
Case 217, 218, 219, 220: vStrAsc = 85 'U
Case 221: vStrAsc = 89 'Y
Case 142: vStrAsc = 90 'Z
Case 224, 225, 226, 227, 228, 229: vStrAsc = 97 'a
Case 231: vStrAsc = 99 'c
Case 232, 233, 234, 235: vStrAsc = 101 'e
Case 236, 237, 238, 239: vStrAsc = 105 'i
Case 241: vStrAsc = 110 'n
Case 242, 243, 244, 245, 246: vStrAsc = 111 'o
Case 249, 250, 251, 252: vStrAsc = 117 'u
Case 253, 255: vStrAsc = 121 'y
Case 158: vStrAsc = 122 'z
End Select
End If
If vBlTiraCaractEspeciais Then
Select Case vStrAsc
'--------- Tira Caracteres Especiais -------------------
Case 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 58, 59, 60, 61, 62, 64, 126, 91, 92, 93, 94, 95, 96, 127: vStrAsc = 1
Case 128, 129, 131, 132, 134, 135, 136, 137, 139, 140, 147, 148, 149, 150, 151, 152, 153, 155, 156, 157, 160, 161, 162, 163, 164, 165, 166, 167: vStrAsc = 1
Case 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 187, 188, 189, 190, 191, 208, 215, 216, 222, 223: vStrAsc = 1
End Select
End If
If vBlTiraNumeros Then
'--------- Tira os números -------------------
Select Case vStrAsc
Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57: vStrAsc = 1
End Select
End If
If vBlTiraLetras Then
Select Case vStrAsc
'--------- Tira as Letras -------------------
Case 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122: vStrAsc = 1
Case 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 138, 142, 158, 192, 193: vStrAsc = 1
Case 194, 195, 196, 197, 199, 200, 201, 202, 203, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 217, 218, 219, 220, 221, 224, 225: vStrAsc = 1
Case 226, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 239, 241, 242, 243, 244, 245, 246, 249, 250, 251, 252, 253, 255: vStrAsc = 1
End Select
End If
If Not vStrAsc = 1 Then vStrSemAcento = vStrSemAcento & Chr(vStrAsc)
Next
TiraDaString = Trim(vStrSemAcento)
End Function
Tira Números, caracteres especiais.
'--------------------------------------------------------------------
Public Function letras() 'Função para conhecer quais números correspondem a qual letra do alfabeto, caracteres e números.
Dim vStr As String
Dim i As Integer
For i = 1 To 255
vStr = vStr & "Asc(" & i & ") - Chr(" & Chr(i) & "); " & vbTab
If i Mod 5 = 0 Then Debug.Print vStr: vStr = ""
Next
End Function
'--------------------------------------------------------------------
Public Function TiraDaString(vStrLetras As String, vBlTiraLetras, vBlTiraAcentos, vBlTiraCaractEspeciais, vBlTiraNumeros As Boolean) As String '
'By Lauro Ribeiro
'Foi retirada a opção de usar o To dentre as opções do Case por ocorrem erros de causas desconhecidas.
'Para incluir ou retirar caracteres, basta pesquisar seu número com a função Asc(String) e incluir o número no Case de sua categoria.
Dim vItI As Integer
Dim vStrSemAcento, vStrAsc As String
For vItI = 1 To Len(vStrLetras)
vStrAsc = CInt(Asc(Mid(vStrLetras, vItI, 1)))
If vBlTiraAcentos Then
Select Case vStrAsc
'---------Tira Acentos -------------------
Case 192, 193, 194, 195, 196, 197: vStrAsc = 65 'A
Case 199: vStrAsc = 67 'C
Case 200, 201, 202, 203: vStrAsc = 69 'E
Case 204, 205, 206, 207: vStrAsc = 73 'I
Case 209: vStrAsc = 78 'N
Case 210, 211, 212, 213, 214: vStrAsc = 79 'O
Case 138: vStrAsc = 83 'S
Case 217, 218, 219, 220: vStrAsc = 85 'U
Case 221: vStrAsc = 89 'Y
Case 142: vStrAsc = 90 'Z
Case 224, 225, 226, 227, 228, 229: vStrAsc = 97 'a
Case 231: vStrAsc = 99 'c
Case 232, 233, 234, 235: vStrAsc = 101 'e
Case 236, 237, 238, 239: vStrAsc = 105 'i
Case 241: vStrAsc = 110 'n
Case 242, 243, 244, 245, 246: vStrAsc = 111 'o
Case 249, 250, 251, 252: vStrAsc = 117 'u
Case 253, 255: vStrAsc = 121 'y
Case 158: vStrAsc = 122 'z
End Select
End If
If vBlTiraCaractEspeciais Then
Select Case vStrAsc
'--------- Tira Caracteres Especiais -------------------
Case 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 58, 59, 60, 61, 62, 64, 126, 91, 92, 93, 94, 95, 96, 127: vStrAsc = 1
Case 128, 129, 131, 132, 134, 135, 136, 137, 139, 140, 147, 148, 149, 150, 151, 152, 153, 155, 156, 157, 160, 161, 162, 163, 164, 165, 166, 167: vStrAsc = 1
Case 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 187, 188, 189, 190, 191, 208, 215, 216, 222, 223: vStrAsc = 1
End Select
End If
If vBlTiraNumeros Then
'--------- Tira os números -------------------
Select Case vStrAsc
Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57: vStrAsc = 1
End Select
End If
If vBlTiraLetras Then
Select Case vStrAsc
'--------- Tira as Letras -------------------
Case 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122: vStrAsc = 1
Case 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 138, 142, 158, 192, 193: vStrAsc = 1
Case 194, 195, 196, 197, 199, 200, 201, 202, 203, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 217, 218, 219, 220, 221, 224, 225: vStrAsc = 1
Case 226, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 239, 241, 242, 243, 244, 245, 246, 249, 250, 251, 252, 253, 255: vStrAsc = 1
End Select
End If
If Not vStrAsc = 1 Then vStrSemAcento = vStrSemAcento & Chr(vStrAsc)
Next
TiraDaString = Trim(vStrSemAcento)
End Function