120 Lições | Gratuito Online | Autor: Júlio Battisti
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.
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.
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.
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:
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ç&atide;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 | Booleano |
12 | Variant (somente é utilizado com Arrays de variantes) |
13 | Um objeto para acesso a dados |
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.
VOCÊ CONHECE A UNIVERSIDADE DO EXCEL? |
UNIVERSIDADE PRÁTICA DO EXCEL - Domine o Excel, do Básico até a Criação de Planilhas Profissionais com Excel e VBA! Aplica-se ao Excel 2019, 2016, 2013 e 2010! |
22 Cursos - 925 Vídeo-Aulas - 120:42 horas - Só R$ 97,00 |
Para Todos os Detalhes, Acesse: |