A função a seguir, programada em VBA para ser utilizada no Excel, serve para retirar quaisquer acentos ou caracteres especiais de uma célula.
Function Acento(caract)
'Acentos e caracteres especiais que serão buscados na string
'Você pode definir outros caracteres nessa variável, mas
' precisará também colocar a letra correspondente em codiB
codiA = "àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ"
'Letras correspondentes para substituição
codiB = "aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"
'Armazena em temp a string recebida
temp = caract
'Loop que irá de andará a string letra a letra
For i = 1 To Len(temp)
'InStr buscará se a letra indice i de temp pertence a
' codiA e se existir retornará a posição dela
p = InStr(codiA, Mid(temp, i, 1))
'Substitui a letra de indice i em codiA pela sua
' correspondente em codiB
If p > 0 Then Mid(temp, i, 1) = Mid(codiB, p, 1)
Next
'Retorna a nova string
Acento = temp
End Function
Para usá-la, no Excel vá em Desenvolvedor > Visual Basic
e em seguida em Inserir > Módulo
. Lá, cole o código acima e salve o módulo.
Feito isso, agora é possível usar “Acentos(caract)
” como uma função qualquer do Excel usando a sintaxe =Acentos(CELULA)
, como por exemplo: