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:
Fonte: COGUMELLO