0173-Dica VBA: Classe String (Funções de R a W)

E concluindo a nossa sequência de artigos, vamos às últimas funções de manipulação de texto. (Não deixe de ver também 0171-Dica VBA: Classe String (Funções de A a F) e 0172-Dica VBA: Classe String (Funções de I a M))

Função Replace : Substitui uma parte de uma cadeia de caracteres por outra sequência definida pelo usuário

Sub String_Replace()

'Cadeia a ser substituída
Localizar = "do"

'Cadeia a ser inserida no lugar da antiga
Substituir = "Do"

'Cadeia que será pesquisada
Texto = "Usuários do Excel"

MsgBox Replace(Texto, Localizar, Substituir)

End Sub

Função Right : Retorna um número especificado de caracteres a partir do final da cadeia informada

Sub String_Right()

'Número de caracteres que serão retornados
n = 5

'Texto do qual serão extraídos os caracteres
Texto = "Usuários do Excel"

MsgBox "Os últimos " & n & " caracteres de " & Texto & " são: " & Right(Texto, n)

End Sub

Função Space : Retorna um número especificado de espaços

No código a seguir, através de um loop são inseridas quantidades crescentes de espaços entre dois caracteres.

Sub String_Space()

For k = 1 To 9

Texto = Texto & k & " espaço(s) entre a e b: " & "a" & Space(k) & "b" & vbLf

Next k

MsgBox Texto

End Sub

Função Split : Retorna uma matriz unidimensional de base zero, contendo um número especificado de subseqüências de caracteres

Sub String_Split()

'Cadeia que será transformada na matriz
Texto = "Usuários do Excel"

'Caractere que delimita a separação entre as sub cadeias
Separador = Space(1)

'Matriz que contém as subcadeias de texto
vTexto = Split(Texto, Separador)

'vTexto é uma matriz cujos elementos são:
'vTexto(0) = "Usuários"
'vTexto(1) = "do"
'vTexto(2) = "Excel"

End Sub

Função StrComp : Utilizada para comparar duas cadeias de texto.
A função possui três argumentos: os dois primeiros são as Strings a serem comparadas. O terceiro argumento define se a comparação irá considerar ou não a diferença entre maiúsculas e minúsculas.
O resultado é um número inteiro: 0 (zero) se as cadeias forem iguais ou -1 (menos um) se forem diferentes.

Sub String_StrComp()

'1º texto a ser comparado
Texto1 = "Abc"

'2º texto a ser comparado
Texto2 = "abC"

'Retorna o valor zero, ou seja, as cadeias são iguais.
'Não diferencia maiúsculas de minúsculas
Compara1 = StrComp(MyStr1, MyStr2, 1)

'Retorna o valor -1, ou seja, as cadeias são diferentes.
'Diferencia maiúsculas e minúsculas
Compara2 = StrComp(MyStr1, MyStr2, 0)

End Sub

Função StrConv : Realiza conversões em uma cadeia de texto, transformando os tipos de letras conforme especificado.
A função possui dois argumentos. O primeiro é a cadeia de texto a ser convertido. O segundo argumento é uma constante que define a transformação a ser realizada.

  • vbLowerCase: Transforma todas as letras em minúsculas
  • vbUpperCase: Transforma todas as letras em maiúsculas.
  • vbProperCase: Transforma a primeira letra de cada palavra em maiúscula e as demais letras em minúsculas.
Sub String_StrConv()
'Cadeia a ser convertida
Texto = "aAA BbB cCC"

'Converter em letras minúsculas.
'Equivale à função LCase
Min = StrConv(Texto, vbLowerCase)

'Converter em letras maiúsculas
'Equivale à função UCase
Mai = StrConv(Texto, vbUpperCase)

'Converter a primeira letra de cada palavra em maiúscula
'e as demais letras em minúsculas
Pri = StrConv(Texto, vbProperCase)

MsgBox "Todas minúsculas = " & Min & vbLf & _
"Todas maiúsculas = " & Mai & vbLf & _
"Primeira letra maiúscula = " & Pri

End Sub

Função String : Cria uma cadeia de caracteres com base na repetição de um caractere

Sub String_String()

'Número de repetições
n = 4

'Caractere a ser repetido
Texto = "a"

MsgBox String(n, Texto)

End Sub

Função StrReverse : Inverte uma sequência de caracteres

Sub String_StrReverse()

'Cadeia a ser invertida
Texto = "Usuários do Excel"

MsgBox StrReverse(Texto)

End Sub

Função Ucase : Transforma todas as letras de uma cadeia de caracteres em letras maiúsculas

Sub String_UCase()

'Cadeia a ser convertida
Texto = "Usuários do Excel"

MsgBox UCase(Texto)

End Sub

Função WeekdayName : Retorna o nome equivalente ao número de um dia da semana

A função possui dois argumentos: o número do dia 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 7, a função retornará um erro.

A função adota o Domingo como o primeiro dia da semana (valor 1).

Sub String_WeekdayName()

'Número do dia da semana
n = 2

'Nome do dia na forma completa
NomedoDia = WeekdayName(n, False, vbSunday)

'Nome do dia na forma abreviada
Abreviatura = WeekdayName(n, True, vbSunday)

MsgBox "O " & n & "º dia da semana é " & NomedoDia & " (" & Abreviatura & ")"

End Sub

O arquivo com os códigos de exemplo pode ser baixado em 0173-Classe_String

In Excel We Trust

Marcado com: , , , , , ,
Publicado em Nível: Avançado
5 comentários em “0173-Dica VBA: Classe String (Funções de R a W)
  1. iron8dance disse:

    I am ipressed by the quality of writing on this website. There are a lots of good resources here. If you are possibly into shark-ad” green smoke reviews, than by all means come in and check our stuff. I am sure I will visit this place again soon. Brilliant, it’s a great article. All the best.

  2. Powder51Linda disse:

    Hey! This is my 1st comment here so I just wanted to give a quick shout out and tell you I genuinely enjoy reading through your blog posts. Can you suggest any other blogswebsitesforums that deal with the same subjects? Many thanks!

  3. necoboy disse:

    Um problema que tive foi deixar as células em maiúsculas, não sei por que a MS não coloca este tipo de formatação no programa, pesquisando na internet achei várias soluções, mas ao selecionar varias células para limpa-las causava erro!, mas esta solução consegui fazendo isso:

    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo exits
    Application.EnableEvents = False
    Range(Target.Address) = UCase(Range(Target.Address).Value)
    Application.EnableEvents = True
    exits:
    Err.Clear
    Application.EnableEvents = True
    End Sub

    Esta é uma rotina mais simples que as outras encontrada, espero ter ajudado.

  4. Clayton disse:

    Tenho uma dúvida, estou programando via VBA e desejo que o mesmo envi um e-mail.
    criei uma varável tipo string, ela contem o e-mail de uma determinada pessoa.
    Como faço para colocar o canteudo dessa varia vel no “TO” do e-mail? Não consigo fazer.
    Ex: Varial string chamada “email” possui o valor clayton.santos@vcimentos.com.br
    como fazer para o campo TO ficar com o valor clayton.santos@vcimentos.com.br?

Deixe uma resposta

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

Visitas dos usuários
  • 1,964,110

Clique para assinar este blog e receber notificações de novos artigos por email.

Junte-se a 1.476 outros seguidores

Aumente sua interação

Siga-nos do twitter (@usuariosdoexcel).

Acesse o nosso fórum e compartilhe as suas dúvidas.

Curta nossa página no Facebook.

Junte-se ao grupo do LinkedIn.

Visite-nos utilizando o seu smartphone ou tablet.

Recomende este Blog
Visualizar notícias
Site monitorado:
Real Time Web Analytics

Clicky

%d blogueiros gostam disto: