Escolar Documentos
Profissional Documentos
Cultura Documentos
VBEsp01
Histrico
Darthmouth College em 1959
BASIC (Beginners All-Purpose Symbolic
Instruction Code)
Sub conjunto de FORTRAN
Tpica de mini computadores
Linguagem interpretada
VBEsp01
Histrico
Interpretador de pequeno tamanho
Crescimento com os micro computadores
enorme
Primeiro produto comercializado por Bill
Gates
Tornou-se a linguagem conhecida pelo
maior nmero de usurios
VBEsp01
Histrico
Por diversas razes a linguagem Basic tem sido
bastante prestigiada pela Microsoft
Em maro de 1988 Alan Cooper desenvolveu o
produto drag-and-drop Tripod e negociou o
conceito deste produto, cognominado Ruby com a
Microsoft. Bill Gates comprou a empresa.
Em maro de 1991 foi lanada a primeira verso
do produto Visual Basic, ou VB1
VB tornou-se uma extenso de Basic
VBEsp01
Histrico
Em novembro de 1992 foi lanado o VB2 com
suporte a ODBC. Nessa ocasio foi lanado o
Access.
Em junho de 1993 foi lanado o VB3 e o
revolucionrio Data Control
O VB4 foi lanado em outubro de 1996
O VB5 foi lanado em abril de 1997
Em outubro de 1998 foi lanado VB6.
Em 2001 foi lanado o Visual Basic .NET
VBEsp01
Tipos de Dados
Varianttipo genrico
BooleanTrue ou False
Byte0 at 255
Integer-32.768 at 32.767
Long-2.147.483.648 at 2.147.483.647
Single-3,402823E38 at -1,401298E-45 (para valores
negativos) 1,401298E-45 at 3,402823E38 (para valores
positivos)
Double
-1,79769313486232E308 at -4,94065645841247E-324
(negativos)
4,94065645841247E-324 at 1,79769313486232E308
(positivos)
VBEsp01
Tipos de Dados
Currency-922.337.203.685.477,5808 at
922.337.203.685.477,5807
Decimal
+/-79.228.162.514.264.337.593.543.950.335
(sem casas decimais)
+/-7,9228162514264337593543950335 (com
casas decimais)
Date1 de Janeiro de 100 at 31 de Dezembro de 9999
String1 at aproximadamente 2 bilhes de
caracteres 65.400 caracteres se tamanho fixo
Typedefinido pelo utilizador
Objectreferncia a objetos
VBEsp01
Variveis
Iniciando com letra
Com at 255 caracteres
Sem brancos, espaos, pontos, +/Diferentes das palavras reservadas
VBEsp01
Declaraes de variveis
Dim
Com sufixos
Integer
Long
Single
Double
Currency
String
%
&
!
#
@
$
VBEsp01
Exemplos de variveis
vByte = 2
vBoolean = True
vInteger = 333
vLong = 98007
vSingle = 3.141592
vDouble = 3.1492574567
vCurrency = 426.78
vDate = #18/09/1977#
vString = String de amostragem
VBEsp01
10
VBEsp01
11
Declarao de Variveis
Dim nomeUm as Integer
Dim inteiroUm as Integer
Dim longoDois as Long
Dim singleTres as Single
Dim duploUm as Double
Dim quantiaUm as Currency
Dim textoUm as String
VBEsp01
12
VBEsp01
13
VBEsp01
14
Variveis Estticas
Variveis com visibilidade local so dinmicas.
O valor das variveis dinmicas inicializado
quando o procedimento for invocado
Variveis que devem guardar o seu ltimo valor
so variveis estticas
S se pode declarar objetos estticos nos
procedimentos e no nos mdulos
Para tornar um objeto esttico a sintaxe
Static nomeDaVariavel as tipoDaVariavel
VBEsp01
15
Visibilidade e longevidade
de uma varivel
Public: visvel em todos os mdulos e
durante toda a execuo
Privateou Dim: visvel dentro do seu
mdulo e durante toda a execuo
Dim: visvel dentro do seu procedimento
e durante a sua execuo
Static: visvel dentro do seu
procedimento e durante toda a execuo
VBEsp01
16
Constantes
As constantes so declaradas da forma
Const nomeDaConstante as tipoDaConstante
= valorDaConstante
VBEsp01
17
Constantes
System-defined constants: True;
False; Null; Empty; Nothing
Intrinsic constants (bibliotecas do
VBA): ConstLEFT_BUTTON=1
Symbolic constants: ConstPI=
3,14
VBEsp01
18
Operadores
Texto
&(concatenao)
Relacionais
=(igual a)
>(maior que)
<(menor que)
<>(diferente de)
>=(maior ou igual)
<=(menor ou igual)
Like(padres de texto) Is(referncia de
objetos)
VBEsp01
19
Precedncia de Operadores
Maior precedncia
^exponenciao
negao
*, /multiplicao e diviso
\diviso inteira
Modresto da diviso
+, adio e subtrao
&concatenao
=, >, <, <>, >=, <=, Like, Iscomparao
And, Or, Not, Imp, Xor, Eqvlgica
Menor precedncia
VBEsp01
20
Outros caracteres
ou Remcomentrios
:mltiplas instrues na
mesma linha
_uma instruo em
mltiplas linhas
VBEsp01
21
Arrays
Arrays so agregados de valores
homogneos
A linguagem VB possui arrays fixos e
dinmicos
Arrays fixos tem seu nmero de elementos
determinado na declarao
Arrays dinmicos
VBEsp01
22
Declarao de Arrays
Dim/Public/Private nomeDoArray
(nmeroDeElementos) [sufixo] As
tipoDoArray
Dim Valores(500) as Integer
Array com 500 elementos inteiros visvel localmente
23
Declarao de Arrays
Dim Alfa (200)
Array com 200 elementos tipo Variant visvel localmente
Public Alfa (200)
Array com 200 elementos tipo Variant global
24
Declarao de Arrays
Por default o primeiro elemento de um
array tem ndice 0
Dim Valores (10 to 40) as Integer
Dim Alfa (100 to 150)
Public Dias (1 to 7) As String
VBEsp01
25
VBEsp01
26
Arrays dinmicos
ReDim: redefine os limites de um dado array
RedimPreserve: redefine os limites de um
dado array e preserva os valores nele
existentes ( aplicvel apenas quando se
redefine a ltima dimenso)
LBound: retorna o limite inferior de um dado
array
UBound: retorna o limite superior de um
dado array
VBEsp01
27
Procedimentos
Tipos
Procedimentos
Funes
Classificao
Da linguagem
De eventos
Do usurio
VBEsp01
28
Definies
Procedimentos e funes da linguagem so
aqueles fornecidos pelo fornecedor do
produto VB (Microsoft)
Procedimentos e funes de eventos so
aes em resposta a eventos da interface
Procedimentos e funes do usurio so a
parte do algoritmo implementada pelo
usurio
VBEsp01
29
Procedimentos de eventos
Procedimentos de eventos so iniciados
aplicando um duplo clique no objeto
correspondente, o que abre a janela de
cdigo correspondente
Sub Objeto_Evento (arg1, arg2, .. argN)
comandos do procedimento
End Sub
VBEsp01
30
VBEsp01
31
Procedimentos do usurio
Procedimentos e funes do usurio so
criados da forma:
Abrir a janela de cdigos do mdulo
Dar um clique no menu Tools
Selecionar a opo Add Procedure
Efetuar as escolhas de tipo, escopo e tipo de
variveis
Dar um clique no boto OK
Digitar o cdigo
VBEsp01
32
Procedimentos do usurio
Sub Nome_do_Procedimento (arg1, arg2, .. argN)
comandos do procedimento
End Sub
VBEsp01
33
Exemplo de procedimento do
usurio
Sub Calculo (X As Variant)
X=X*5
MsgBox O resultado desejado & X
End Sub
VBEsp01
34
Funes do usurio
Function Nome_da_Funo (arg1, arg2, .. argN)
comandos da funo
End Function
VBEsp01
35
VBEsp01
36
VBEsp01
37
VBEsp01
38
VBEsp01
39
40
Declarao de parmetros
Os tipos de parmetros so declarados na
definio das rotinas
Sub Objeto_Evento (arg1 As Tipo_1, arg2 As
Tipo_2, ..., argN As Tipo_N)
comandos
End Sub
VBEsp01
41
42
Declarao de parmetros
Os argumentos podem ser passados por
referncia ou por valor
O default a passagem por referncia
VBEsp01
43
Declarao de parmetros
Quando no se desejar que a rotina altere os dados do
procedimento chamador deve-se usar a passagem por
valor que pode ser feita:
Na definio da rotina
Sub Objeto_Evento (ByVal arg1 As Tipo_1, ByVal arg2
As Tipo_2, ..., ByVal argN As Tipo_N)
comandos
End Sub
ou na chamada da rotina
Objeto_Evento (arg1), (arg2), ..., (argN)
VBEsp01
44
VBEsp01
45
Argumentos Opcionais
Com a declarao Optional especificam-se
argumentos que o usurio pode utilizar ou no
Quando o usurio no especificar argumentos
opcionais sero utilizados argumentos default
Quando se usa a declarao Optional para uma
lista de parmetros, todos os parmetros
subsequentes devero tambm ser opcionais
VBEsp01
46
Visibilidade de Rotinas
Tal como as variveis os procedimentos e as
47
Estruturas Condicionais
Tipos
If .. End If
Select Case
End Select
VBEsp01
48
Exemplo do uso de If
'Testa o nmero digitado
If Text1.Text = "0" Or Text1.Text = "" Then 'Se for 0 ou vazio
End
'Finaliza a aplicao
ElseIf Text1.Text = "1" Then
'Se for 1
MsgBox "Nmero 1 foi digitado"
ElseIf Text1.Text = "10" Then
'Se for 10
MsgBox "Nmero 10 foi digitado"
Else
'Se no for 0,1, 10 ou "" (vazio)
If IsNumeric(Text1.Text) Then 'Se o contedo for numrico
MsgBox "Nmero Invlido"
ElseIf VarType(Text1.Text) = vbString Then
MsgBox "No so permitidas as entradas de Strings"
Else
MsgBox "Contedo Invlido"
End If
End If
VBEsp01
49
Estruturas Condicionais
If .condio Then
comandos
[ElseIf condiox Then]
comandos
[Else]
comandos
End If
VBEsp01
50
Estruturas Condicionais
Select Case condio
[Case expresso1]
[comandos]
[Case Else]
[comandos]
End Select
VBEsp01
51
VBEsp01
52
Repeties
Tipos
Do While
While
For
VBEsp01
53
Repeties
Do [{While | Until} condio]
[comandos]
[Exit DO]
[comandos]
Loop
VBEsp01
54
Repeties
While condio
[comandos]
Wend
VBEsp01
55
VBEsp01
56
Repeties
For contador = valor_inic To valor_final
[Step incremento]
[comandos]
[Exit For]
[comandos]
Next [contador]
VBEsp01
57
'Varivel contadora
58
Estrutura Width
Esta estrutura simplifica a escrita de cdigo
59
60
61
VBEsp01
62
Clusula ParamArray
Esta clusula permite que um array seja
VBEsp01
63
Exemplo
Option Explicit
Sub Insere (ParamArray Argumentos())
Dim x as Variant
For Each x In Arguments
List1.AddItem x
Next
End Sub
Private Sub btnInsere_Click()
Insere Argumento 1, Argumento 2, _
Argumento 3
End Sub
VBEsp01
64
Argumentos Nomeados
Utilizando-se argumentos com nome pode-
65
66
Projetos Visual
Basic
VBEsp01
67
De pginas de
propriedades (.pag)
De recursos
(.res_)
Externos
(.exe,
.dll e outros)
(.vdp)
De Formulrios (.frm)
De Mdulos (.bas)
De Controles ActiveX
(.ocx)
De Controles do
usurio
(.ctl)
VBEsp01
68
Componentes de um Projeto
Arquivos de Projeto contm um ndice dos
componentes do Projeto
Documentos ActiveX so semelhantes a
formulrios visualizados por browsers
Controles do usurio so controles ActiveX
criados pelos usurios
VBEsp01
69
Componentes de um Projeto
Pginas de propriedades so arquivos para
VBEsp01
70