String é o tipo de dado indicado para armazenar texto no VBA.
Dim VarTexto As String 'Declaração de variável do tipo String
Para armazenar informações de texto em uma variável String o conteúdo deve estar entre aspas duplas (" "):
Dim VarTexto As String
VarTexto = "Algum Nome"
Apesar de ser possível guardar informações numéricas em formato de texto, elas não se comportarão da mesma maneira que em formato numérico, modificando e limitando seus possíveis operadores.
Dim VarTexto As String Dim VarNum As Single VarTexto = "6" + "3" MsgBox VarTexto 'Obterá como resultado "63" em formato de texto VarNum = 6 + 3 MsgBox VarNum 'Resulta em 9 VarTexto = "6" / "3" 'Gerará um erro: esse operador não existe para String VarNum = 6 / 3 'Fará a divisão normalmente
A seguir veremos as principais funções pré-definidas de texto para manipulação de Strings em VBA.
As funções UCase e LCase tornam uma cadeia de caracteres em letras maiúsculas e em letras minúsculas, respectivamente.
Função | String | Exemplo | Resultado |
---|---|---|---|
UCase | Torna a cadeia de caracteres maiúscula |
|
EXEMPLO DE TEXTO
|
LCase | Torna a cadeia de caracteres minúscula |
|
exemplo de texto
|
UCase e LCase são funções importantes para padronização de dados, uma vez que nem todas as suas fontes estarão na mesma caixa (caixa alta ou caixa baixa).
Outra função com mais opções para alterar a caixa do texto é a StrConv. (que pode funcionar como UCase e LCase).
Ao utilizar StrConv(string, conversion) é necessário argumentar o tipo conversão desejada.
Valor (conversion) | Equivalente | Descrição |
---|---|---|
StrConv(string,1) | vbUpperCase | Converte tudo para maiúsculas |
StrConv(string,2) | vbLowerCase | Converte tudo para minúsculas |
StrConv(string,3) | vbProperCase | Converte as primeiras letras para maiúsculas e as demais para minúsculas |
Abaixo um exemplo de StrConv utilizando vbProperCase:
Função | Argumento | Exemplo | Resultado |
---|---|---|---|
StrConv | vbProperCase |
|
Exemplo De Texto
|
As funções LTrim, RTrim e Trim servem para remover espaços nas extremidades de uma String:
Função | String | Exemplo | Resultado |
---|---|---|---|
LTrim | Remove o espaços na extremidade esquerda |
|
Exemplo de Texto ...
|
RTrim | Remove espaços na extremidade direita |
|
Exemplo de Texto...
|
Trim | Remove espaços em ambas as extremidade |
|
Exemplo de Texto...
|
Foi colocado os "..." depois da variável para evidenciar a redução dos espaços.
vbCrLf é um comando destinado a adicionar uma linha ("Enter") a String.
Len é uma função que retorna o número de caracteres totais em uma String.
Função | String | Exemplo | Resultado |
---|---|---|---|
Len | Total de caracteres |
|
22
|
Todos os caracteres são contabilizados, inclusive espaços em branco.
Len pode ser aplicado como um validador simples de informações.
Sub validarCPF()
Dim cpfcliente As String
cpfcliente = Inputbox("Qual o CPF do cliente? (digite apenas os números)")
If Len(cpfcliente) = 11 Then
'Todo CPF deve ter 11 caracteres, se contados apenas os números
MsgBox "Iremos processar o seu pedido em breve."
'...código para realizar ações
Else
MsgBox "CPF inválido. Verifique as informações inseridas"
End If
End Sub
As funções InStr e InStrRev procuram dentro de uma String determinado texto e retornam (contando da esquerda para direita em quantidade de caracteres) a posição em que ela aparece.
Função | String | Exemplo | Resultado |
---|---|---|---|
InStr | Busca a posição de ocorrência da esquerda para a direita |
|
12
|
InStrRev | Busca a posição de ocorrência da direita para a esquerda |
|
15
|
Estas funções podem ser muito úteis quando utilizadas juntamente Left, Right como veremos mais adiante.
Em ambos os casos, InStr e InStrRev retornam:
- A posição, contada em número de caracteres partir do início da String, ou seja, contando da esquerda para direita.
- A posição da primeira ocorrência dentro da String,(InStr a mais a esquerda, InStrRev a mais a direita).
Caso seja retornado 0, significa que a ocorrência procurada não foi encontrada na String.
As funções Left, Right e Mid são utilizadas para extrair partes de uma linha de texto (String).
MsgBox Left("Exemplo texto", 3) 'Retornará "Exe"
MsgBox Right("Exemplo texto", 3) 'Retornará "xto"
MsgBox Mid("Exemplo texto", 3,4) 'Retornará "empl"
As funções Left, Right e Mid podem ser usadas em conjunto com outras funções (como Len, InStr e InStrRev) para resultados com maior utilidade.
Função | String | Exemplo | Resultado |
---|---|---|---|
Left | Extrai caracteres a esquerda de uma determinada posição |
|
Exemplo
|
Right | Extrai caracteres a direita de uma determinada posição |
|
Texto
|
Mid | Extrai caracteres do interior da string, entre determinadas posições |
|
de
|
Nos argumentos da função Mid deve ser indicada a posição inicial e o número de caracteres a se extrair.
A Função Replace é utilizada para trocar partes do texto por outra desejada.
Dim VarTexto As String
VarTexto = "Sempre, Sempre estude VBA"
MsgBox Replace(VarTexto, "Sempre", "Super")
É possível converter um dado com tipo String para número com auxílio de funções:
Dim VarInt As Integer
VarInt = CInt("34") 'Converte "34" para o inteiro 34
MsgBox VarInt+3 'Retornará 37
Função | Definição |
---|---|
CByte | Converte uma String para o tipo Byte |
CInt | Converte uma String para o tipo Integer |
CLng | Converte uma String para o tipo Long |
CSng | Converte uma String para o tipo Single |
CDbl | Converte uma String para o tipo Double |
CCur | Converte uma String para o tipo Currency |
CDec | Converte uma String para o tipo Decimal |
É possível converter um número para uma String utilizando a função CStr
Texto = CStr(33) 'Converte 33 para "33"
MsgBox Texto & "a" 'Retorna "33a"
Exercício Sugerido
SuperExcelVBA.com é um site voltado ao aprendizado de VBA. Exemplos e explicações podem ter sido simplificados para maior e mais veloz compreensão. Estamos constantemente nos atualizando e corrigindo erros, porém não existe garantia sobre o conteúdo disponível no site. Todos os direitos reservados.
Excel ® é uma marca registrada da Microsoft Corporation.
© 2024 SuperExcelVBA | SOBRE