Variáveis

As variáveis são usadas para armazenar temporariamente os valores durante a execução de uma aplicação e possuem:

·                    Nome, ao qual são referidas

·                    Tipo, que determina o tipo de informação que a variável pode armazenar

 

Declaração de variáveis

Dim Nome As Tipo

Ex:

Dim Aluno as String

Dim Idade as Integer

Dim Nota as Single

 

Declaração Implícita

Não é obrigatório declarar as variáveis antes de serem usadas. Por exemplo é possível escrever uma função em que não é necessário declarar a variável TempVal previamente:

Function SafeSqr(num)
   TempVal = Abs(num)
   SafeSqr = Sqr(TempVal)
End Function

O VB cria automaticamente uma variável com esse nome. Apesar de poder ser conveniente, esta falta de rigor pode levar a erros no código como por exemplo quando há um engano ao escrever o nome de uma variável.

Function SafeSqr(num)
   TempVal = Abs(num)
   SafeSqr = Sqr(TemVal)
End Function

Aparentemente esta função é igual à anterior mas olhando mais em detalhe para a 3ª linha verifica-se que houve um engano a escreveu-se TemVal. O resultado desta função vai ser sempre zero, porque o VB cria uma nova variável que não tem qualquer valor atribuído.

Declaração Explícita

Para evitar o tipo de problemas anterior pode-se usar a opção:

 

Option Explicit

 

Que obriga à declaração de todas as variáveis, caso contrário o programa não corre.

 

Âmbito das variáveis

O âmbito das variáveis diz respeito em que parte do código é conhecida uma determinada variável. Quando uma variável é declarada dentro de uma subrotina, só pode ser acedida e alterada nessa subrotina. No entanto existem variáveis que por necessidade podem ser acedidas e alteradas dentro de várias subrotinas que fazem parte de um módulo ou ainda num projecto constituído por vários módulos variáveis podem ser conhecidas em todos os módulos desse projecto.

 

VER POWER POINT

 

Constantes

Const conPi = 3.14159265358979
Public Const conMaxPlanets As Integer = 9
Const conReleaseDate = #1/1/95#

 

Constantes são valores que aparecem várias vezes no programa e que ao contrário das variáveis não alteram o seu valor.

 

Sumário de tipos disponíveis no VB

Data type

Range

Byte

0 to 255

Boolean

True or False

Integer

-32,768 to 32,767

Long
(long integer)

-2,147,483,648 to 2,147,483,647

Single
(single-precision floating-point)

-3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values

Double
(double-precision floating-point)

-1.79769313486232E308 to
-4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values

Currency
(scaled integer)

-922,337,203,685,477.5808 to 922,337,203,685,477.5807

Decimal

+/-79,228,162,514,264,337,593,543,950,335 with no decimal point;
+/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest non-zero number is
+/-0.0000000000000000000000000001

Date

January 1, 100 to December 31, 9999

Object

Any Object reference

String
(variable-length)

0 to approximately 2 billion

String

(fixed-length)

1 to approximately 65,400

Variant
(with numbers)

Any numeric value up to the range of a Double

Variant
(with characters)

Same range as for variable-length String

User-defined
(using Type)

The range of each element is the same as the range of its data type.

 

User Defined Type

 
Private Type SystemInfo
   CPU As Variant
   Memory As Long
   VideoColors As Integer
   Cost As Currency
   PurchaseDate As Variant
End Type

 

Dim MySystem As SystemInfo, YourSystem As SystemInfo

 

MySystem.CPU = "486"
YourSystem.PurchaseDate = #1/1/92# 

 

Arrays

Um array é composto por um conjunto de variáveis sob o mesmo nome que se distinguem entre si através de um índice. Isto ajuda normalmente a criar código.

 

Ver Power Point

 

Alocação dinâmica e alocação estática

 

Dim Counters(14) As Integer  

 

Dim Matrix1() As Integer
 
Sub CalcValuesNow ()
   .
   .
   .
   ReDim Matrix1(19, 29)
End Sub

 

 

Introdução a Procedimentos

O principal objectivo dos procedimentos é “arrumar” o código tornando mais fácil a sua leitura e alteração, aumenta também a eficiência de programação evitando repetições de comandos. A ideia principal é organizar os comandos comuns a uma determinada tarefa.

 

Sub Rotinas

Uma subrotina é um bloco de código que é executado como resposta a um determinado evento.

 

Sub teste (A As Integer)

 

End Sub

 

Call teste (A)

 

Funções

A principal diferença das sub rotinas é que neste caso a função devolve um valor e como tal tem um tipo específico.

 
Function Hypotenuse (A As Integer, B As Integer) _
As String
   Hypotenuse = Sqr(A ^ 2 + B ^ 2)
End Function

 

strX = Hypotenuse(Width, Height)
 

Passagens de Argumentos

By val não altera valor da variável

By ref altera o valor da variável

 

Sub Main()

 Dim a As Integer

            a = 10

            Call TestVal(a)

            Call TestRef(a)

            MsgBox (" Main = " & a)

End Sub

-------------------------------------------------

Sub TestVal(ByVal a As Integer)

a = a + 1

MsgBox (" TestVal = " & a)

End Sub

-------------------------------------------------

Sub TestRef( ByRef a As Integer)

a = a + 1

MsgBox (" TestRef = " & a)

End Sub

 

Estruturas de decisão

If...Then

If anyDate < Now Then anyDate = Now
 
If anyDate < Now Then
   anyDate = Now
End If

If...Then...Else

If Index = 0 Then            
      Call Sub1
   ElseIf Index = 1 Then      
      Call Sub2
   ElseIf Index = 2 Then      
      Call Sub3
   Else                        
      Call Sub3
   End If

Select Case

Select Case Index
      Case 0                  
         Call Sub1
      Case 1                
         Call Sub2
      Case 2                  
         Call Sub3
      Case 3                  
         Call Sub4
      Case Else
         Call Sub5
 
   End Select

 

Estruturas “LOOP

Do While ... Loop

   Do While line < 10
      Call ReadLine(line)
      line = line+1
   Loop
 

For...Next

 
For i = 0 To 10
  For j = 0 to 10
      Matriz(i,j) = cos(x)
  Next
Next

 

 

For Each...Next

 
For Each File In folder.File()
      Call ReadFile (File)

Next File

 

Programação sequencial VS controlada por eventos

 

Introdução ao VBA no Excel

-         Instalar o VBA

-