Lição 14: Funções do VBA - Funções de Tipo - Parte 1
A partir dessa lição veremos uma série de aspectos que vão além do básico do VBA. Iniciaremos falando um pouco mais sobre tipos de dados e funções para conversão de tipos. Este tópico é de grande importância, principalmente quando criamos código que efetua cálculos, tais como uma folha e pagamentos ou cálculos de impostos.
Depois passaremos a analisar uma série de funções internas do VBA. São funções que fazem parte do Microsoft Excel, como por exemplo a função Date(), que retorna a data do sistema. Nas lições do próximo módulo, aprenderemos a criar nossas próprias funções e Sub-rotinas. Aprenderemos as diferenças entre uma Sub-rotina e uma função, e quando utilizar uma ao invés da outra.
Tipos de dados e funções para conversão de tipos
Neste item, aprenderemos a determinar qual o tipo de dado que está armazenado em uma variável, bem como a converter valores de um tipo para outro, utilizando as funções para conversão de tipos.
Determinando o Tipo de Dados contido em uma variável.
Existem diversas funções, que permitem que seja determinado o tipo de valor contido em uma variável. Existem diversas aplicações para este tipo de função. Por exemplo, ao digitar dados em um formulário do Excel (no curso sobre Programação VBA e Criação de Aplicativos com o Excel, aprenderemos a criar formulários), podemos utilizar uma função para determinar se os valores digitados pelo usuário, não apresentam problemas. Por exemplo, o usuário pode ter digitado, por engano, texto em um campo que deve conter valores numéricos.
A função IsArray.
Um Array é um tipo especial de variável, a qual pode armazenar diversos valores em uma única variável. De uma forma simples, um Array é um conjunto ou como aprendi nos bons e velhos tempos da faculdade de Engenharia Elétrica na UFSM: Um vetor. Por exemplo, poderíamos ter uma variável Array na qual são armazenados todos os códigos de tributo, válidos para o recolhimento de impostos. Cada valor armazenado no Array é um elemento do conjunto. Um outro exemplo: Poderíamos criar um Array para armazenar os nomes dos meses do ano. Com isso teríamos um Array de 12 elementos.
Cada elemento de um Array, é acessado através do nome da variável Array e de um índice. O índice inicia em zero e não em um . Por isso se tivermos um Array de 10 elementos, teremos o elemento 0, o elemento 1, o elemento 2, e assim por diante, até o elemento 9. O fato do índice começar com 0, influencia na hora que formos declarar um Array. Para declarar um Array chamado produtos, com 20 elementos, utilizaríamos o seguinte comando:
Dim produtos(19)
O 19 significa que temos 20 elementos (sempre um a mais do que o número que aparece na declaração), isto é, do elemento 0, indicado por produtos(0), até o elemento 20, indicado por produtos(19).
No exemplo a seguir, temos um exemplo simples de utilização de Array:
'Declara um Array de 7 posições
'Como a primeira posição é a posição zero,
'Indicamos o tamanho como 6, o que significa
'da posição 0 até a posição 6 = 7 elementos.
Dim Dias(6)
'Atribuímos valores para os dias da semana
Dias(0)= "Segunda-feira"
Dias(1)= "Terça-feira"
Dias(2)= "Quarta-feira"
Dias(3)= "Quinta-feira"
Dias(4)= "Sexta-feira"
Dias(5)= "Sábado"
Dias(6)= "Domingo"
'Agora utilizamos um laço For...Next
'Para criar uma String, com o conteúdo
'Do Array Dias.
For i=0 to 6
mensagem = mensagem & "Dia: " & i+1 & " " & Dias(i)& Chr(13)
Next
'Utilizamos uma MsgBox, para exibir a mensagem
'com o conteúdo do Array Dias.
MsgBox mensagem |
Esse trecho de código, ao ser executado, produziria a seguinte saída:

Utilizamos a função IsArray, para determinar se uma variável do tipo Variant (lembre que todas as variáveis do VBA, são do tipo Variant), está armazenando um Array.
Utilizamos a seguinte sintaxe:
IsArray(NomeDaVariável)
A função IsArray retorna verdadeiro se a variável for um Array, e falso caso contrário.
Vamos alterar um pouco o exemplo anterior, adicionando o seguinte comando, ao final da listagem.:
MsgBox IsArray(Dias)
o resultado seria o indicado na Figura a seguir:

A função VarType.
Podemos utilizar a função VarType, para determinar o subtipo de uma variável. Como todas as variáveis são do tipo Variant, o subtipo pode ser utilizado para determinar o tipo de dado armazenado na variável. Passamos para a função, o nome de uma variável ou expressão. A função retorna um número inteiro que indica o subtipo da variável.
A sintaxe da função é a seguinte:
VarType(NomeDaVariável)
ou
VarType(expressão)
Na Tabela a seguir temos os códigos de retorno da função VarType.
Tabela - Valores de retorno da função VarType.
Valor Descrição
0 Vazio (não inicializado)
1 Nulo (dados não válidos)
2 Inteiro
3 Inteiro longo
4 Número de precisão simples
5 Número de precisão dupla
6 Monetário.
7 Data
8 Texto
9 Objeto de automação
10 Erro
11 Boleano
12 Variant (somente é utilizado com Arrays de variantes)
13 Um objeto para acesso a dados.
17 Byte
8192 Array
No exemplo a seguir, temos um exemplo de utilização da função VarType.
Dim x,y,z
Dim a, b
Dim c(20)
Dim mensagem As String
x=12
y=23.456
y=123456789
a="Este é um valor de texto !"
'Utilizamos a função Date( ), para capturar a data do sistema.
b=Date()
mensagem = "Tipo da variável x: " & Vartype(x) & Chr(13)
mensagem = mensagem & "Tipo da variável y: " & Vartype(y) & Chr(13)
mensagem = mensagem & "Tipo da variável z: " & Vartype(z) & Chr(13)
mensagem = mensagem & "Tipo da variável a: " & Vartype(a) & Chr(13)
mensagem = mensagem & "Tipo da variável b: " & Vartype(b) & Chr(13)
mensagem = mensagem & "Tipo da variável c: " & Vartype(c) & Chr(13)
MsgBox mensagem |
Ao executar este exemplo, obteremos o resultado indicado na Figura a seguir:

Observe, principalmente, no tipo da variável z, o qual retornou 0. Isto significa que a variável z está vazia, ou seja, não foi inicializado. Este resultado está coerente com a Tabela anterior. Também podemos salientar o retorno para a variável b, o qual retornou 7, indicando que o valor armazenado nesta variável é do tipo Data, o que também está coerente com a Tabela anterior, uma vez que usamos a função Date() , para armazenar a data do sistema, na variável b. Finalmente observe o valor de retorno para a variável c, o qual retornou 8192, indicando que a variável c é um Array. Este resultado está coerente com a Tabela anterior, e com a declaração: Dim c(20), a qual declarou a variável c como sendo um Array.
Muitas são as aplicações práticas para a função VarType, dentre as quais podemos destacar a validação dos dados digitados em um formulário.
Voltar ao início
| PRODUTOS RELACIONADOS - EXCEL |
| LIVROS |
VÍDEO-AULAS |
E-BOOKS |
|
|
|
|
|
|
|
Uma verdadeira especialização em Office, com 6208 páginas de conteúdo que vai do básico ao avançado, detalhadamente explicado e exemplificado. Desde os recursos básicos, passando pelos recursos avançados, pela criação de macros e pela automação de tarefas usando programação VBA.
Apenas: R$ 195,00 (valor do frete já incluído)
CLIQUE AQUI PARA SABER COMO COMPRAR ESTE CD |
|