Dando continuidade ao post 0171-Dica VBA: Classe String (Funções de A a F), veremos outras funções importantes para manipulação de Strings.
Função InStr : Retorna o valor que especifica a posição da primeira ocorrência de uma seqüência de caracteres dentro de outra.
Sub String_InStr() 'Cadeia de texto na qual será realizada a busca PosiçãoInicial = 1 'Cadeia de texto que será pesquisada CadeiaPesquisada = "Usuários do Excel" 'Caractere que se busca CadeiaProcurada = "e" 'Posição na qual o caractere foi encontrado Localizado = InStr(PosiçãoInicial, CadeiaPesquisada, CadeiaProcurada) MsgBox Localizado End Sub
Comentários:
- Essa função diferencia letras maiúsculas e minúsculas. Desta forma se CadeiaProcurada for igual a “e” o valor retornado é 16, e se for igual a “E”, o valor será 13.
- Pode-se se procurar uma cadeia maior. Se, por exemplo, CadeiaProcurada = “do”, será retornado o valor 10.
- Se não for localizado o valor em CadeiaProcurada, o resultado obtido é 0 (zero).
Função InStrRev : ‘Retorna a posição de uma ocorrência de uma seqüência de caracteres dentro de outra, a partir do final da seqüência de caracteres.
Essa função é similar à anterior, mas a busca se inicia sempre do último em direção ao primeiro caractere da cadeia.
Sub String_InStrRev() 'Cadeia de texto na qual será realizada a busca CadeiaPesquisada = "Usuários do Excel" 'Caractere que se busca CadeiaProcurada = "o" 'Posição na qual o caractere foi encontrado Localizado = InStrRev(CadeiaPesquisada, CadeiaProcurada) MsgBox Localizado End Sub
Comentário:
No exemplo acima será obtido o valor 11. Se utilizássemos a função InStr o valor obtido seria 7.
Função Join : Combina os vários elementos de uma matriz de Strings, numa cadeia de texto única.
Sub String_Join() 'Matriz que contém as Strings Matriz = Array("Usuários", "do", "Excel") 'Caractere que será utilizado para separar as diferentes Strings Separador = " " 'Texto a ser criado Texto = Join(Matriz, Separador) MsgBox "Cadeia concatenada: " & Texto End Sub
Função LCase : Transforma todas as letras de uma cadeia de caracteres em letras maiúsculas.
Sub String_LCase() 'Cadeia a ser convertida Texto = "Usuários do Excel" MsgBox LCase(Texto) End Sub
Função Left : Retorna um número especificado de caracteres a partir da posição inicial da cadeia de caracteres.
Sub String_Left() 'Nº de caracteres que serão retornados n = 7 'Cadeia da qual serão extraídos os caracteres Texto = "Usuários do Excel" MsgBox "Os primeiros " & n & " caracteres de " & Texto & " são: " & Left(Texto, n) End Sub
Função Len : Retorna o número de caracteres de uma String.
Sub String_Len() 'Cadeia cujos caracteres serão contados Texto = "Usuários do Excel" MsgBox "A cadeia de texto: '" & Texto & "' possui " & Len(Texto) & " caracteres." End Sub
Funções LTrim, RTrim e Trim : Esse conjunto de funções removem da cadeia de caracteres os espaços excedentes.
LTrim: Caracteres à esquerda
RTrim: Caracteres à direita
Trim: Caracteres à direita e à esquerda
Sub String_LTrim_RTrim_Trim() 'Cadeia de texto cujos espaços serão removidos Texto = " Usuários do Excel " MsgBox "Sem espaços à esquerda = '" & LTrim(Texto) & "'" & vbLf & _ "Sem espaços à direita = '" & RTrim(Texto) & "'" & vbLf & _ "Sem espaços à direita e à esquerda = '" & Trim(Texto) & "'" End Sub
Comentário:
Nenhuma destas funções removem caracteres excedentes do meio da cadeia de texto.
Função Mid : Retorna uma determinada quantidade de caracteres a partir do ponto especificado da cadeia de texto.
Sub String_Mid() 'Cadeia de texto que será pesquisada Texto = "Usuários do Excel" 'Posição a partir da qual será retornado o primeiro caractere Posicao = 13 'Número de caracteres que serão retornados nCaract = 5 'Cadeia de texto obtida Retorno = Mid(Texto, Posicao, nCaract) MsgBox "Os " & nCaract & " caracteres contados a partir da " & Posicao & "ª posição são : '" & Retorno & "'" End Sub
Função MonthName : Retorna o nome de um mês, baseado em um número inteiro de 1 a 12.
A função possui dois argumentos: o número do mês e um Booleano que define se o nome será exibido por inteiro (False) ou na forma abreviada (True).
Se o valor numérico informado for menor do que 1 ou maior do que 12, a função retornará um erro
Sub String_MonthName() 'Número equivalente ao mês desejado '1 = Janeiro, 2 = Fevereiro, ...., 12 = Dezembro n = 2 'Nome do mês NomedoMes = MonthName(n, False) 'Abreviatura do nomo Abreviatura = MonthName(n, True) MsgBox "O " & n & "º mês é " & NomedoMes & ", cuja abreviatura é " & Abreviatura End Sub
O arquivo com os códigos exemplificados pode ser baixado aqui: 0172-Classe_String
Deixe um comentário