Você está na página 1de 70

A Linguagem Basic

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

O tipo de dados Variant


O tipo de dados Variant o tipo Default e
pode armazenar qualquer tipo de dados,
reajustando-se dinamicamente
ao seu
contedo.

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

Visibilidade das variveis


Declaradas em procedimentos ou funes
tem visibilidade local
Declaradas na rea de declaraes de
mdulos tem visibilidade dentro do mdulo

VBEsp01

13

Visibilidade Pblica ou Global


Dados que devam ser acessados por
diversos procedimentos devem ser pblicos.
Para tornar um objeto pblico a sintaxe
Public nomeDaVariavel as tipoDaVariavel

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

Public Valores(500) as Integer


Array com 500 elementos inteiros visvel globalmente
VBEsp01

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

Dim Dias (7) As String


Array com 7 elementos tipo String visvel localmente

Public Dias (7) As String


Array com 7 elementos tipo String global
VBEsp01

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

Acesso a elementos de Arrays


Dias(1) = Domingo
Alfa(1) = Rio de Janeiro
Alfa(15) = #12/12/1812#
Alfa(180) = 512
Valores(12) = 412

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

Exemplo de procedimentos de eventos


Private Sub cmdExecutar_Click()
Dim i, j As Single
If Text1.Text = "" Then Caixa de textos 1 vazia
i=0
Else: i = CSng(Text1.Text) Converter para real o contedo
End If
If Text2.Text = "" Then Caixa de textos 2 vazia
j=0
Else: j = CSng(Text2.Text) Converter para real o contedo
End If
Text3.Text = i + j
End Sub

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

Exemplo de Funo do usurio


Private Function maximo(i As Double, j As Double)
If i > j Then
maximo = i
Else
maximo = j
End If
End Function

VBEsp01

36

Edio de rotinas do usurio


A visualizao e edio das rotinas
(procedimentos e funes) do usurio
podem ser feitas usando:
Os ComboBoxes da janela de Cdigos
As chamadas da rotina
O utilitrio ObjectBrowser

VBEsp01

37

Edio de rotinas do usurio


usando ComboBoxes
Abrir a janela de cdigo do componente
aonde foi inserida a rotina
No ComboBox de objetos selecionar
General
Abrir a lista de procedimentos
Selecionar o mdulo desejado

VBEsp01

38

Edio de rotinas do usurio


usando as chamadas
Abrir a janela de cdigo do componente
aonde foi inserida a rotina
Posicionar o cursor sobre uma chamada
rotina
Pressionar as teclas SHIFT+F2

VBEsp01

39

Edio de rotinas do usurio


usando Object Browser
Pressionar F2 ou abrir o menu View e
selecionar Object Browser
Abrir a janela de cdigo do componente
aonde foi inserida a rotina
Na ListBox de Classes selecionar o nome
do componente aonde foi inserida a rotina
Na ListBox de Member of... selecionar a
rotina
VBEsp01

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

Exemplo de declarao de parmetros


Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim Tecla as String
Tecla$ = Chr(KeyAscii)
If Tecla >= 0 And Tecla$ <= 9 Then
Beep
KeyAscii = 0
End If
End Sub
VBEsp01

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

Exemplo de passagem por valor


Sub Calculo (ByVal X As Variant)
X=X*5
MsgBox O resultado desejado & X
End Sub

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

funes podem ser dos tipos


Public
Private
Static

O default para as rotinas Public


Procedimentos de eventos so privados
VBEsp01

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

Exemplo do uso de Select


mesi=month(date)
Select case mesi
Case 1
stringMes="Janeiro"
Case 2
stringMes="Fevereiro"
Case 3
stringMes="Maro"
Case 12
stringMes="Dezembro"
End Select

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

Exemplo da estrutura While


contador = 0
While menor <= maior
menor = menor + terceiro
contador = contador + 1
Wend
Text3.Text = contador

VBEsp01

56

Repeties
For contador = valor_inic To valor_final
[Step incremento]
[comandos]
[Exit For]
[comandos]
Next [contador]

VBEsp01

57

Exemplo do uso de For .. Next


Dim Contador%

'Varivel contadora

Repete iniciando contador% com 0


'at que o contador seja igual 2000
For Contador% = 0 To 2000
'Adiciona um novo tem no List Box
List1.AddItem "tem " & Str(Contador%)
Next
VBEsp01

58

Estrutura Width
Esta estrutura simplifica a escrita de cdigo

permitindo que os objetos apaream


implcitos em suas propriedades.
Sintaxe
Width objeto
comandos
End Width
VBEsp01

59

Exemplo da estrutura Width


Private Sub cmdTestar_Click()
With Label1
.Caption = Veja o teste
.FontBold = True
.ForeColor = vbRed
.AutoSize = True
End Width
End Sub
VBEsp01

60

Estrutura For Each


Esta estrutura permite a execuo de uma

seqncia de comandos para cada um dos


elementos de um array ou conjunto.
Sintaxe
For Each elemento In grupo
[comandos]
[Exit For]
Next
VBEsp01

61

Exemplo de For ... Each


Dim qry As QueryDef
' Processar cada consulta armazenada
For Each qry In DB.QueryDefs
QryList.AddItem qry.Name
Next

VBEsp01

62

Clusula ParamArray
Esta clusula permite que um array seja

definido como um parmetro de


procedimento.
A chamada do procedimento pode ser feita
passando quantos parmetros forem
necessrios.

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-

se chamar um procedimento ou funo


passando os argumentos em qualquer
ordem.
Dentro da chamada deve-se usar o nome do
parmetro com atribuio de valor pelos
smbolos :=.
Exemplo
VBEsp01

65

Uso de argumentos com nome


Private Sub Command1_Click()
Exibir _
pLugar := vbCenter, pMens:= Argumentos, pTamanho: = 12
End Sub
Private Sub Exibir (pMens As String, pTamanho As Integer,
pPLugar as Integer)
Label1.Alignment = pLugar
Label1.FontSize = pTamanho
Label1.Caption = pMens
End Sub
VBEsp01

66

Projetos Visual
Basic
VBEsp01

67

Arquivos Componentes de um Projeto


De Projeto

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

gerar interfaces de manipulao dos


controles ActiveX gerados pelo usurio
Arquivos de Recursos armazenam dados
referentes a textos, menus, mapas de bits,
sons, etc.

VBEsp01

70

Você também pode gostar