Welington Pereira
Desenvolvedor Full Stack & Consultor
Especialista em linguagens de programação e banco de dados. Compartilhando dicas de programação práticas, tutoriais e soluções para o dia a dia do desenvolvedor.
Desenvolvedor Full Stack & Consultor
Especialista em linguagens de programação e banco de dados. Compartilhando dicas de programação práticas, tutoriais e soluções para o dia a dia do desenvolvedor.
Function Acento(Caract As String) Dim A As String Dim B As String Dim i As Integer Const AccChars = "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ" Const RegChars = "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy" For i = 1 To Len(AccChars) A = Mid(AccChars, i, 1) B = Mid(RegChars, i, 1) Caract = Replace(Caract, A, B) Next Acento = Caract End Function
Siga os passos conforme a imagem abaixo:
E é só isso, está pronto. Antes de irmos para o exemplo prático, vamos entender como funciona essa macro.COMO ESTA MACRO FUNCIONA
Normalmente quando criamos uma macro ela começa com Sub ou Private Sub mas você deve ter notado que esta começa com Function pois se trata de uma UDF. Esta função foi nomeada de Acento e é assim que iremos nos referenciar a ela dentro do Excel, e possui apenas um argumento, chamado Caract que nada mais é do que o texto ou palavra com acento. Para fins comparativos, a função PROCV utiliza 4 argumentos, separados pelo ; (ponto e virgula), a função Acento, que acabamos de criar, possui apenas um.Primeiro definimos 3 variáveis que serão utilizadas pela função, são elas as variáveis A, B e i além de duas constantes chamadas de AccChars e RegChars.For i = 1 To Len(AccChars)Significa que um certo código será repetido enquanto a variável i for menor que o número de caracteres presentes na constante AccChars.A = Mid(AccChars, i, 1) e B = Mid(RegChars, i, 1)Significam que a variável A será a letra que estiver na posição i da variável AccChars. Quando i for igual a 1 então A será igual a primeira letra de de AccChars, isso se repete até que acabem as letras de AccChars. O mesmo acontece bom B porém ao invés de ser uma letra em AccChars será ma letra presente em RegChars.Caract = Replace(Caract, A, B)Este trecho faz com que sempre que a palavra ou texto que se deseja remover os acentos, tiver uma letra presente em AccChars, está letra (com acento) é substituída pela mesma letra presente em RegChars (sem acento). Isso é repetido até que todas as letras presentes em ACCChars e RegChars sejam substituídas.Acento = CaractFaz com que o resultado da função Acento seja igual a Caract que teve todas suas letras com acentos substituídas por letras sem acento.EXEMPLO PRÁTICO
A imagem abaixo mostra uma pequena lista de palavras com acento e o resultado obtido com a UDF Acento.
Nenhum comentário:
Postar um comentário