O que são variáveis?
As
variáveis constituem repositórios temporários de dados, podendo ser utilizadas
para diversos fins.
Assignação de valores a variáveis:
Quando
se pretende atribuir valores a variáveis dever-se-á indicar o nome da variável,
o operador "=" e o valor que se pretende que a variável armazene.
<Nome_Variável> = <Valor>
Pela observação do procedimento Adição - Figura 22-
podemos verificar que as variáveis Parcela_1 e Parcela_2 armazenam os valores
introduzidos pelo utilizador através das InputBox (Ver capítulo "InputBox e MsgBox"). Também à
variável Total vai ser atribuído o valor resultante da adição das duas parcelas
- Total = Parcela_1 + Parcela_2.
Utilização de variáveis como se fossem
valores:
O
nome da variável representa o conteúdo da mesma, i.e., sempre que mencionar o
nome da variável é o seu conteúdo que será considerado.
No
exemplo da figura 22, pode-se constatar que na expressão:
Total = Parcela_1 +
Parcela_2
Parcela_1 representa o primeiro valor introduzido e
Parcela_2 representa o segundo valor, não se trata de adicionar o nome de duas
variáveis, mas adicionar os conteúdos que elas armazenam.
Tipos de
variáveis
O tipo de variável está associado ao género de
informação que esta tem hipótese de armazenar
Boolean – 2 bytes – Permite armazenar valores Boolenaos –
True ou False
Byte – 1 Byte – permite armazenar números sem sinal entre 0
e 255
Currency - 8 bytes – permite armazenar moeda
Date – 8 Bytes – permite armazenar datas
Double – 8 bytes – permite armazenar um real desde
-1.79769313486232E308 até -4.94065645841247E-324 para valores negativos, e
desde 1.79769313486232E308 até 4.94065645841247E-324 para valores positivos.
Single – 4 bytes – permite armazenar um real desde
-3.402823E38 até
-1.4011298E-45, para valores negativos e desde
3.402823E38 até 1.4011298E-45, para valores positivos
Integer – 2 bytes - permite armazenar números inteiros entre
-32.768 e 32767
Long – 4 bytes – permite armazenar números inteiros entre -2 147 483 648 e
2 147 483 648
Object – 4 bytes – utilizado para fazer referência a um objecto do Excel
String – 1 byte por caractere – permite armazenar conjuntos
de caracteres
Variant – 16 bytes - permite armazenar qualquer tipo de dados
User-Defined – permite armazenar valores de tipos diferentes
Declaração de Variáveis
Onde:
Dim – Palavra chave que indica uma declaração de variáveis
(abreviatura de dimensão)
I_Numero - nome da variável a utilizar
As – palavra chave utilizada para separar o nome da
variável do tipo de dados
Integer – tipo de dados atribuído à variável
É possível na mesma declaração
de variáveis declarar variáveis de diversos tipos:
Dim var1 As Integer, var2 As Date, var3 As Double
Para declarar diversas variáveis do
mesmo tipo:
Dim var_1, var_2, var_3 As Currency
Variáveis – Vantagens da utilização
¨
Simplificam a
codificação, principalmente quando se necessita de utilizar um valor especifico
inúmeras vezes
¨
Com variáveis o
código é mais rápido
Variáveis do Tipo Objecto
Uma variável objecto
representa uma referência a um objecto. Uma variável de extrema importância que
facilita a codificação e melhora a performance da subrotina.
Declaração
da Variável Objecto
Dim
<Var_Objecto> As Object
Atribuição
de uma variável Objecto
Set <Var_Objecto>
= <Objecto>
Onde:
Set – palavra chave que indica a assignação de uma
variável objecto
<Var_Objecto>
- Variável Objecto
=
- Operador de assignação
<Objecto>
- Objecto a ser atribuído à variável
Utilização
Genérica da Variável Objecto
A
utilização genérica do tipo Objecto serve para suportar qualquer tipo de
objecto Excel (WorkBook,WorkSheet,Range,…)
Exemplo:
Dim Range_1 as Object
Range_1 =
Worksheet(1).Range(“A1”)
Range_1.Value
= 10
Utilização
Especifica da Variável Objecto
Utiliza-se
o tipo exacto do objecto que se pretende atribuir à variável. Esse tipo
especifico de objectos coincide com o nome dos objectos em EXCEL.
Dim Range_1 As
Range
Dim WB_1 As Workbook
Dim
WS_1 As WorkSheet
Dim XL As Aplicativo
Exemplo:
Dim Range_1 as Range
Range_1 = Worksheet(1).Range(“A1”)
Range_1.Value
= 10
Contudo
estas declarações também podem ser feitas da seguinte forma genérica:
Dim Range_1 As Object
Dim WB_1 As Object
Dim WS_1 As Object
Dim XL As Object
Então qual o interesse de definir as
variáveis de forma especifica se o podemos fazer de forma genérica?
Por
uma questão de performance, se utilizar um objecto genérico, o VBA antes de
executar qualquer função com o objecto tem que primeiramente o identificar
(perdendo tempo) – em subrotinas simples essa diferença não é substancial mas
quando se trata de grandes subrotinas já se denotam diferenças significativas.
Variáveis
– Declaração Opcional e o Tipo Variant
A
declaração de variáveis é opcional, se as variáveis não forem declaradas o VBA
faz a sua declaração por defeito. Assim sempre que a instrução do Dim é omitida
para uma variável, essa assume o tipo Variant.
Os Prós
e Contras da Utilização do tipo Variants
Prós
·
Diminui o número
de linhas de código
·
Não é necessário
estar preocupado se a variável está ou não declarada porque o VBA
automaticamente o faz
Contras
·
Aumenta o tempo
de execução – o VBA primeiro precisa de reconhecer o tipo de dados com os quais
está a trabalhar.
·
Este tipo de
dados consome mais memória (uma vez que tem que alocar espaço para qualquer
tipo de dados que lhe seja atribuído) – 16 bytes mais um byte por caractere se
for String => problemas de performance para subrotinas grandes.
·
Não é possível
saber o tipo de dados que uma determinada variável contém – dificultando a
detecção de erros.
Variáveis – Declaração Forçada
Para
que o VBA detecte um erro sempre que uma variável não seja declarada deverá
fazer:
·
Tools/Options
·
Editor Tab
·
Activar Require
Variable Declaration
Ou então, escrever no início de cada módulo Option Explicit
Neste
caso sempre que seja detectada uma variável que ainda não foi declarada dá uma
mensagem de erro - Variable Not Defined
Variáveis – tipos definidos pelo utilizador -
estruturas
Definição do Tipo
A
primeira fase é constituída pela definição do tipo:
Type Dados_Pessoais
Nome As String
Idade As Integer
DataNascimento As Date
BI As Long
Criou-se
um tipo de dados que representa uma estrutura com dados de diferentes tipos.
Esta definição deverá ocorrer no início do módulo VBA.
Onde:
|
Type
|
Palavra-Chave que indica a definição de um tipo
de dados criado pelo utilizador.
|
|
Dados_Pessoais
|
Nome atribuído ao tipo de dados.
|
|
Nome As
String
|
Primeiro elemento da estrutura de dados
definida.
|
|
Idade As
Integer
|
Segundo elemento da estrutura de dados definida.
|
|
DataNascimento As Date
|
Terceiro elemento da estrutura de dados
definida.
|
|
BI As
Long
|
Quarto elemento da estrutura de dados definida.
|
|
End Type
|
Palavra-Chave que indica o fim da definição da estrutura de
dados.
|
Utilização
das Estruturas de Dados
Como
utilizar as estruturas de dados:
Sub Tipos_definidos_Utilizador()
Dim
Pessoa As Dados_Pessoais
Pessoa.Nome = “Francisco”
Pessoa.DataNascimento = #8/7/73#
Pessoa.Idade
= WorksheetFunction.Year(Date)_
– WorksheetFunction.Year(Pessoa.DataNascimento)
Pessoa.BI = 103582915
MsgBox [1]Pessoa.Nome
& Chr(13) & “, Idade “ &
Pessoa.Idade & Chr(13) & _
“, Data de Nascimento ” &
Pessoa.DataNascimento & Chr(13)
& _
“, com o BI número “_ & Pessoa.BI
End Sub

Nenhum comentário:
Postar um comentário