Podemos formatar os dados a serem exibidos em caixas de texto, formulário, etc... Para isso fazemos uso da função Format. A função Format tem vastos recursos para formatação de dados numéricos, string, moeda, data, etc.
Sua sintaxe é a seguinte:
Format(<expressão>[, <Formato>)
<Expressão>: Seria a nossa expressão a ser formatada. Os dados que queremos formatar.
Pode ser uma string, uma expressão numérica, data, etc. ou qualquer variável dos tipos citados.
<Formato>: O formato pode ser determinado pelas máscaras de formatação, que
veremos a seguir, ou ainda, por uma palavra-chave que determina para que tipo de dados estamos formatando a <Expressão>.
Para formatar qualquer expressão numérica usamos “#” para representar um digito de 0 a 9, “,” para representar os milhares e “.” para representar as casas decimais. Como o padrão brasileiro para milhares e casas decimais é exatamente o contrário, o Visual Basic automaticamente irá colocar no nosso padrão, pois irá verificar qual o formato usado para o pais de acordo com o que foi estabelecido no painel de controle.
Print Format(12345.3,”##,###.##”)
Valor Impresso: 12.345,3
Usamos o simbolo “#” para representar a disposição dos números. Não há necessidade de colocar a mesma quantidade de números e “#”. Se tivessesmos colocado
Print Format(12345.3,”#,###,###.##”), ainda assim seria impresso somente “12.345,3”.
Entretanto, se colocarmos:
Print Format(12345.3, "###.##")
Valor Impresso: 12345,3
Perceba que não podemos colocar uma formatação menor que os números que serão impressos, pois senão a formatação não irá alcançar toda a extensão dos números.
O símbolo “#” é substituído por números quando existir número para ser
substituído. Note que o número decimal é “.3” e apesar de termos usado uma formatação para casas decimais com dois símbolos “##”, não apareceu as duas casas decimais. Se quisermos forçar o aparecimento de zeros quando não tiver número para ser impresso, usados “0” no lugar de “#”. Veja:
Print Format(12345.3,”##,###.00”)
Valor Impresso: 12.345,30
Print Format(12345,”##,###.00”)
Valor Impresso: 12.345,00
Isto vale também para formatação de números sem casas decimais:
Print Format(45,”0000”)
Valor Impresso: 0045
Se quisermos uma formatação diferente para números negativos, basta colocar essa formatação após o ponto-e-virgula.
Print Format(12345,”##,###.00; (-)##,###.00”)
Valor Impresso: 12.345,00
Print Format(-12345,”##,###.00; (-)##,###.00”)
Valor Impresso: (-)12.345,00
Veja abaixo os caracteres que podem ser usados na formatação de valores numéricos:
0 Exibe um dígito ou um zero. Se a expressão tiver um dígito na posição em
que o 0 aparece na seqüência de caracteres de formato, ele será exibido; caso contrário, é exibido um zero nessa posição.
Se o número possui um número de dígitos inferior ao de zeros (em qualquer lado da casa decimal) na expressão de formato, exibe zeros à esquerda ou à direita. Se o número tiver mais dígitos à direita do separador decimal do que zeros à direita do separador decimal na expressão de formato, arredonda o número para tantas casas decimais quantos forem os zeros existentes. Se o número tiver mais dígitos à esquerda do separador decimal do que zeros à esquerda do separador decimal na expressão de formato, exibe os dígitos a mais sem modificações.
# Exibe um dígito ou nada. Se a expressão tiver um dígito na posição em que o símbolo # aparece na seqüência de caracteres de formato, ele será exibido; caso contrário, nada será exibido nessa posição.
Este símbolo funciona como o espaço reservado para o dígito 0, mas os zeros à esquerda e à direita não são exibidos se o número tiver a mesma quantidade ou menos dígitos do que existem # caracteres em qualquer um dos lados do separador decimal na expressão de formato.
. Espaço reservado para decimal
Para algumas localidades, é usada uma vírgula como separador decimal. O espaço reservado para decimal determina quantos dígitos são exibidos à esquerda e à direita do separador decimal. Se a expressão de formato contiver apenas sinais de números à esquerda deste símbolo, os números inferiores a 1 começam com um separador decimal. Se você quiser que um zero à esquerda seja sempre exibido com números fracionários, use 0 como o primeiro espaço reservado para dígito à esquerda do separador decimal. O caractere real utilizado como espaço reservado para decimal na saída formatada depende do Formato Numérico reconhecido pelo sistema.
% Espaço reservado para porcentagem
A expressão é multiplicada por 100. O caractere de porcentagem (%) é inserido na posição onde ele aparece na seqüência de caracteres de formato.
, Separador de milhar
Para algumas localidades, é utilizado um ponto como o separador de milhar. O separador de milhar separa milhar de centena dentro de um número que tenha quatro ou mais casas à esquerda do separador decimal. O uso padrão do separador de milhar é especificado no formato que contém um separador de milhar delimitado por espaços reservados de dígito (0 ou #). Dois separadores de milhar adjacentes ou um separador de milhar imediatamente à esquerda do separador decimal (sendo ou não especificado um decimal) significa "aplique uma escala ao número dividindo-o por 1000 e arredonde-o conforme necessário." Use essa técnica para aplicar escalas a números extensos. Por exemplo, a seqüência de caracteres de formato "##0,," pode ser usada para representar 100 milhões como 100. Números inferiores a 1 milhão são exibidos como 0. Dois separadores de milhar adjacentes em qualquer posição que não seja a imediatamente à esquerda do separador decimal serão considerados apenas como especificação do uso de um separador de milhar. O caractere real utilizado como o separador de milhar na saída formatada depende do Formato Numérico reconhecido pelo sistema.
E- E+ e- e+ Formato científico
Se a expressão de formato contiver pelo menos um espaço reservado para dígito (0 ou #) à direita de E-, E+, e- ou e+, o número é exibido em formato científico, sendo E ou e inserido entre o número e seu expoente. O número de espaços reservados para dígito à direita determina o número de dígitos do expoente. Use E- ou e- para incluir um sinal de subtração (-) ao lado de expoentes negativos. Use E+ ou e+ para incluir um sinal de subtração ao lado de expoentes negativos e um sinal de adição (+) ao lado de expoentes positivos.
Para exibir uma caractere diferente dos listados, preceda-o com uma barra invertida (\) ou coloque-o entre aspas (" ").
\ Exibe o caractere seguinte da seqüência de caracteres de formato
Muitos caracteres da expressão de formato têm um significado especial e não podem ser exibidos como caracteres literais a menos que sejam precedidos por uma barra invertida. A barra propriamente não é exibida. Sua utilização equivale a colocar o caractere seguinte entre aspas. Para exibir uma barra invertida, use duas barras invertidas (\\).
Exemplos de caracteres que não podem ser exibidos como caracteres literais são caracteres de formatação de data e hora (a, c, d, h, m, n, p, q, s, t, w, y e /:), caracteres de formatação numérica (#, 0, %, E, e, vírgula e ponto) e os caracteres de formatação de seqüências de caracteres (@, &, <, >, e !).
"ABC" Exibe a seqüência de caracteres que está entre aspas.
Para incluir uma seqüência de caracteres em Format a partir do código, você deve usar Chr(34) para delimitar o texto (34 é código de caractere para aspas).
Usamos também como argumento na formatação de expressões numéricasalgumas palavras-chave que correspondem a algum tipo de formato padrão.
General Number : Exibe o número na forma em que se encontra, sem separadores
de milhar.
Print Format(123456.7, "General Number")
Valor Impresso: 123456,7
Currency : Exibe o número com o separador de milhar, se apropriado; exibe dois
dígitos à direita do separador de casa decimal. Note que a saída é baseada nas configurações do Painel de Controle.
Print Format(123456.7, "Currency")
Valor Impresso: R$123.456,70
Fixed : Exibe pelo menos um dígito à esquerda e dois dígitos à direita do separador de casa decimal.
Print Format(123456.7, "Fixed")
Valor Impresso: 123456,70
Print Format(1, "Fixed")
Valor Impresso: 1,00
Standard : Exibe o número com o separador de milhar, pelo menos um dígito à
esquerda e dois dígitos à direita do separador de casa decimal.
Print Format(123456.7, "Standard")
Valor Impresso: 123.456,70
Percent : Exibe o número multiplicado por 100 com um sinal de porcentagem (%)
anexado à direita; sempre mostra dois dígitos à direita do separador de casa decimal.
Valor Impresso: 12345670,00%
Print Format(1, "Percent")
Valor Impresso: 100,00%
Scientific : Usa a notação científica padrão.
Print Format(123456.7, "Scientific")
Valor Impresso: 1,23E+05