0172-Dica VBA: Classe String (Funções de I a M)

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

Anúncios

In Excel We Trust

Marcado com: , , , , , ,
Publicado em Nível: Avançado

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: