Se você usa o VBA no seu dia a dia, talvez já tenha ouvido falar na função VBA InStr, mais uma versatilidade disponível nesse programa para automatizar as planilhas do trabalho.
Essa é uma função bastante simples de extrair texto em VBA, mas que poucas pessoas conhecem ou sabem aplicar, na prática.
Nesse conteúdo, vamos mostrar exemplos da função e explicar como ela pode ser usada.
Vale a pena conhecer e se aprofundar no assunto, especialmente se faz parte da sua rotina a análise de dados e estatísticas em grande volume de informação. Confira a seguir!
O VBA InStr é uma funcionalidade usada para descobrir a posição de uma determinada substring em uma string depois de se determinar o método de comparação para a função.
Mas o que isso significa, você pode estar se perguntando.
De forma resumida, dentro da linguagem de programação, considera-se uma string toda sequência de caracteres usados para formar frases e palavras.
Simplificando, uma string representa todo texto de um programa.
Existem quatro métodos principais de comparação para esse tipo de função, sendo a InStr uma função de string.
Contudo, a saída retornada pela função é numérica, sendo assim a saída se dá através de uma variável inteira.
Essa função normalmente está relacionada à ação de extrair texto ou localizar a posição de um texto de uma planilha complexa de dados.
Por exemplo, você pode aplicar a função InStr no seu Excel para extrair uma substring de uma frase ou alterar até mesmo o design de fonte de uma string, como deixar o texto em negrito ou itálico.
Existem diversas possibilidades de como utilizar essa função, mas para começar a usar a função VBA InStr é necessário abrir um novo projeto em Excel com o uso do VBA.
Afinal, a InStr é uma função interna da função String (texto) utilizada no Excel.
Como função VBA, ela pode ser aplicada no código de macro que é inserido por meio do editor do Microsoft Visual Basic.
A partir da definição dos métodos, a função fará uma pesquisa com distinção entre letras maiúsculas e minúsculas para localizar a posição da informação buscada ou para realizar a ação solicitada.
Essa função pode ser utilizada em diversos modelos do Excel, tais como o Excel para Office 365, Excel 2019, Excel 2016, Excel 2013, Excel 2011 para Mac, Excel 2010, Excel 2007, Excel 2003, Excel XP e o mais recente Excel 2000.
Antes de mostrar os exemplos aplicados na prática, é importante saber como a função VBA InStr pode ser usada.
De modo geral, são 4 métodos usados:
Na palavra Brasil, para encontrar a posição do caractere a use o código VBA Instr a seguir:
Na sequência, execute o código acima apertando a tecla F5 ou manualmente. O resultado numérico declarado será: 3
Na palavra Argentina, para encontrar a posição do a na segunda posição deve-se seguir o código:
Execute o código apertando F5. Como nesse exemplo, a contagem começa a partir da posição 2, o primeiro a é ignorado na contagem. Por isso, o resultado na função deve aparecer como posição 9.
Nesse outro exemplo, é possível perceber como a VBA Instr pode ser usada para localizar nos textos com distinção de maiúscula com o código vbBinaryCompare. Por exemplo, na palavra Música, para localizar a letra I:
Apertando o F5 para executar o código, você terá como resultado a posição 0, pois a função não terá encontrada uma letra maiúscula correspondente.
Caso prefira esse conteúdo do Exemplo 4 no formato de vídeo-aula, assista ao vídeo abaixo!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Veja abaixo a disposição de 6 exemplos que temos:
Necessitamos, por meio de um código e artifícios via VBA separar em 3 colunas diferentes as 3 informações: nome, sobrenome e curso.
Com o código abaixo, isso será conseguido. Acompanhe!
Sub extrairCodigo()
For linha = 2 To 6
texto = Cells(linha, 1).Value
priTraco = InStr(texto, "-")
segTraco = InStr(priTraco + 1, texto, "-")
nome = Left(texto, priTraco - 2)
sobrenome = Mid(texto, priTraco + 2, segTraco - priTraco - 3)
curso = Right(texto, Len(texto) - segTraco - 1)
Cells(linha, 2).Value = nome
Cells(linha, 3).Value = sobrenome
Cells(linha, 4).Value = curso
Next
End Sub
Explicação do código acima:
Destrinchando um dos textos para facilitar o entendimento:
O esperado, se rodássemos o código, para essa linha específica, seria:
Rodando o código, teremos o seguinte resultado:
Veja que agora temos os nomes, sobrenomes e cursos separados, em colunas diferentes, da forma como queríamos no começo da aula.
Reunimos aqui as principais dicas e uma breve definição sobre o que é a função VBA InStr.
Nos exemplos, você pode observar que existem diversas formas de aplicar esse recurso no seu trabalho para buscar a posição de uma determinada informação dentro do texto.
A ideia é que essa função e todas as outras do VBA possam ajudar a tornar a sua rotina ainda mais simples e prática.
Quer saber mais sobre esse universo de VBA e Excel avançado? Não perca tempo. Existem cursos, como os da #Treinamentos, para todos os níveis.
Para aprender sobre o VBA do zero, você pode ler nosso artigo que fala sobre VBA e começar agora a aprender mais sobre o assunto.
Explore mais uma possibilidade para tornar seu currículo profissional ainda mais atrativo e para se destacar no mercado de trabalho.
Para acessar outras publicações de VBA, clique aqui!
Sócio e especialista em VBA da Hashtag Treinamentos. Criador do Método Impressionador para ensinar pessoas comuns a crescerem na carreira e se destacarem na empresa usando o VBA.