0171-Dica VBA: Classe String (Funções de A a F)

Toda vez que manipularmos uma cadeia de texto, esteja ela numa célula, num título de gráfico, num código de VBA ou qualquer objeto do Excel, estaremos manipulando uma classe de objetos chamada String.
O VBA nos permite manipular Strings através de diversas funções.
Veremos a seguir uma série de exemplos das funções mais importantes:

Função Asc: Retorna um Número inteiro que representa o código de caractere correspondente à primeira letra de uma seqüência.

O código a seguir exibe uma mensagem com o número 85, que é o código correspondente à letra “U”.

Sub String_Asc()
MsgBox Asc("Usuários do Excel")
End Sub

Função Chr: Retorna uma sequência de caracteres que contém o caractere associado ao código de caractere especificado. Pode ser interpretada como o inverso da função Asc.

No código a seguir é exibida a letra “U” correspondente ao código Asc 85

Sub String_Chr()
MsgBox Chr(85)
End Sub

Função Filter: Retorna uma matriz de base zero que contém um subconjunto de uma matriz de seqüência de caracteres baseada em critérios de filtro especificados. Ou seja, em cada um dos termos da matriz fornecida é pesquisado um valor desejado. Todos os termos fornecidos são agregados numa matriz resultado.

Vejamos o código a seguir:

Sub String_Filter()
MatrizPesquisada = Array("Planilha", "Excel", "Programa", "Funções", "Pausa")
ValorPesquisado = "P"
MatrizCoincidentes = Filter(MatrizPesquisada, ValorPesquisado, vbTrue, vbTextCompare)

    For i = LBound(MatrizCoincidentes) To UBound(MatrizCoincidentes)

    Texto = Texto & MatrizCoincidentes(i) & vbLf

    Next i

MsgBox "Valores coincidentes: " & vbLf & Texto
End Sub

O valor “P” será pesquisado ao longo dos termos da matriz, será criada uma matriz com os valores coincidentes, e em seguida eles serão concatenados para criar uma mensagem numa MsgBox.

Caixa de mensagem com o resultado.

Caixa de mensagem com o resultado.

Comentário: Se modificarmos o terceiro parâmetro de vbTrue para vbFalse, serão listados os valores não coincidentes.

Função Format: Retorna uma String que contém uma expressão formatada segundo instruções contidas em uma expressão de formato.

No exemplo a seguir são exibidas diferentes formatações para a data corrente do sistema:

Sub String_Format01()

Formato01 = Format(Date, "dd-mm-yy")
Formato02 = Format(Date, "dd/mmm/yyyy")
Formato03 = Format(Date, "dd/mmmm/yyyy")

Texto = "Exibições de formato para a data atual:" & vbLf & vbLf
Texto = Texto & "Formato dd-mm-yy: " & Formato01 & vbLf & vbLf
Texto = Texto & "Formato dd/mmm/yyyy: " & Formato02 & vbLf & vbLf
Texto = Texto & "Formato dd/mmmm/yyyy: " & Formato03

MsgBox Texto

End Sub

A função Format também pode ser utilizada para definir outros formatos numéricos.
No próximo exemplo, é exibida a raiz quadrada de 5 com 4 casas decimais:

Sub String_Format02()
Texto = Format(Sqr(5), "0.0000")
MsgBox Texto
End Sub

Função FormatCurrency: Retorna uma expressão formatada como um valor de moeda usando o símbolo de moeda configurado no Painel de controle do sistema.

A função apresenta os seguintes argumentos:

Argumento Tipo Significado
Expression Obrigatória Expressão a ser formatada
NumDigitsAfterDecimal Opcional Define o número de casas decimais exibidas depois do separador de decimais
IncludeLeadingDigit Opcional A constante que indica se os valores fracionários serão ou não precedidos por zero ao serem exibidos.
UseParensForNegativeNumbers Opcional A constante que indica se os valores negativos devem ou não ser colocados entre parênteses.
GroupDigits Opcional A constante que indica se os números são ou não agrupados usando o delimitador de grupo especificado nas configurações regionais do computador.

Os argumentos IncludeLeadingDigit, UseParensForNegativeNumbers e GroupDigits possuem 3 valores possíveis: vbTrue, vbFalse ou vbUseDefault (usa as definições padrão do sistema).

Eis um exemplo:

Sub String_FormatCurrency()
Texto = FormatCurrency(-0.3, 4, vbTrue, vbTrue, vbTrue)
MsgBox Texto
End Sub

Neste caso o valor será exibido da seguinte forma:

Exibindo exemplo FormatCurrency

Exibindo exemplo FormatCurrency

Função FormatDateTime: Retorna uma expressão formatada como uma data ou hora.

Esta função possui dois argumentos: o primeiro é a expressão é ser formatada e o segundo (NamedFormat) é uma constante que define a formatação em si.

Vejamos a seguir como a expressão de data equivalente a 26/05/2013 13:30 é exibida para os diferentes valores de NamedFormat:

Constante

Constante Visualização
vbGeneralDate “26/03/13 13:30:00”
vbLongDate “domingo, 26 de maio de 2013
vbLogTime “13:30:00”
vbShortDate “26/05/2013”
vbShortTime “13:00”

Função FormatNumber: Retorna uma expressão formatada como um número.

Esta função possui a mesma sintaxe e parâmetros da função FormatCurrency vista acima.

No exemplo a seguir o número -3,1415 é exibido como -3.14.

Sub String_FormatNumber()
Texto = FormatNumber(-3.1415, 2, vbTrue, vbFalse, vbTrue)
MsgBox Texto
End Sub

Função FormatPercent: Retorna uma expressão formatada como uma porcentagem (multiplicada por 100) com um caractere % à direita.

Esta função possui a mesma sintaxe e parâmetros da função FormatCurrency vista acima.

No exemplo a seguir a fração 1/3 é exibida como 33,3%.

Sub String_FormatPercent()
Texto = FormatPercent(1 / 3, 1, vbTrue, vbTrue, vbTrue)
MsgBox Texto
End Sub

Aguardem o próximo artigo, com a continuação das funções da Classe String.

Os exemplos apresentados aqui podem ser baixados em 0171-Classe_String

In Excel We Trust

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

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: