A Linguagem Basic
VBEsp01
1
Histórico
Darthmouth College em 1959
BASIC (Beginners All-Purpose Symbolic
Instruction Code)
Sub conjunto de FORTRAN
Típica de mini computadores
Linguagem interpretada
VBEsp01
2
Histórico
Interpretador de pequeno tamanho
Crescimento com os micro computadores
enorme
Primeiro produto comercializado por Bill
Gates
Tornou-se a linguagem conhecida pelo
maior número de usuários
VBEsp01
3
Histórico
Por diversas razões a linguagem Basic tem sido
bastante prestigiada pela Microsoft
Em março 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 março de 1991 foi lançada a primeira versão
do produto Visual Basic, ou VB1
VB tornou-se uma extensão de Basic
VBEsp01
4
Histórico
Em novembro de 1992 foi lançado o VB2 com
suporte a ODBC. Nessa ocasião foi lançado o
Access.
Em junho de 1993 foi lançado o VB3 e o
revolucionário Data Control
O VB4 foi lançado em outubro de 1996
O VB5 foi lançado em abril de 1997
Em outubro de 1998 foi lançado VB6.
Em 2001 foi lançado o Visual Basic .NET
VBEsp01
5
Tipos de Dados
Variant tipo genérico
Boolean True ou False
Byte 0 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
6
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)
Date 1 de Janeiro de 100 até 31 de Dezembro de
9999
String 1 até aproximadamente 2 bilhões de
caracteres 65.400 caracteres se tamanho fixo
Type definido pelo utilizador
VBEsp01
Object referência a objetos
7
Variáveis
Iniciando com letra
Com até 255 caracteres
Sem brancos, espaços, pontos, +/Diferentes das palavras reservadas
VBEsp01
8
Declarações de variáveis
Dim
Com sufixos
Integer
 Long
 Single
 Double
 Currency
 String

%
&
!
#
@
$
VBEsp01
9
Exemplos de variáveis
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
conteúdo.
VBEsp01
11
Declaração de Variáveis
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 variáveis
Declaradas em procedimentos ou funções
tem visibilidade local
Declaradas na área de declarações de
módulos tem visibilidade dentro do módulo
VBEsp01
13
Visibilidade Pública ou Global
Dados que devam ser acessados por
diversos procedimentos devem ser públicos.
Para tornar um objeto público a sintaxe é
Public nomeDaVariavel as tipoDaVariavel
VBEsp01
14
Variáveis Estáticas
Variáveis com visibilidade local são dinâmicas.
O valor das variáveis dinâmicas é inicializado
quando o procedimento for invocado
Variáveis que devem guardar o seu último valor
são variáveis estáticas
Só se pode declarar objetos estáticos nos
procedimentos e não nos módulos
Para tornar um objeto estático a sintaxe é
Static nomeDaVariavel as tipoDaVariavel
VBEsp01
15
Visibilidade e longevidade de
uma variável
Public: visível em todos os módulos e
durante toda a execução
Private ou Dim: visível dentro do seu
módulo e durante toda a execução
Dim: visível dentro do seu
procedimento e durante a sua execução
Static: visível dentro do seu
procedimento e durante toda a
execução
VBEsp01
16
Constantes
As constantes são declaradas da forma
Const nomeDaConstante as tipoDaConstante
= valorDaConstante
VBEsp01
17
Constantes
System-defined constants: True;
False; Null; Empty; Nothing
Intrinsic constants (bibliotecas do VBA):
Const LEFT_BUTTON = 1
Symbolic constants: Const PI =
3,14
VBEsp01
18
Operadores
Texto

& (concatenação)
Relacionais







= (igual a)
> (maior que)
< (menor que)
<> (diferente de)
>= (maior ou igual)
<= (menor ou igual)
Like (padrões de texto) Is (referência de
objetos)
VBEsp01
19
Precedência de Operadores
Maior precedência
^ exponenciação
- negação
* , / multiplicação e divisão
\ divisão inteira
Mod resto da divisão
+ , - adição e subtração
& concatenação
= , > , < , <> , >= , <= , Like , Is comparação
And , Or , Not , Imp , Xor , Eqv lógica
Menor precedência
VBEsp01
20
Outros caracteres
‘ ou Rem comentários
: múltiplas instruções na mesma
linha
_ uma instrução em múltiplas
linhas
VBEsp01
21
Arrays
Arrays são agregados de valores
homogêneos
A linguagem VB possui arrays fixos e
dinâmicos
Arrays fixos tem seu número de elementos
determinado na declaração
Arrays dinâmicos
VBEsp01
22
Declaração de Arrays
Dim/Public/Private nomeDoArray
(númeroDeElementos) [sufixo] As
tipoDoArray
Dim Valores(500) as Integer
‘ Array com 500 elementos inteiros visível localmente
Public Valores(500) as Integer
‘ Array com 500 elementos inteiros visível globalmente
VBEsp01
23
Declaração de Arrays
Dim Alfa (200)
‘ Array com 200 elementos tipo Variant visível localmente
Public Alfa (200)
‘ Array com 200 elementos tipo Variant global
Dim Dias (7) As String
‘ Array com 7 elementos tipo String visível localmente
Public Dias (7) As String
‘ Array com 7 elementos tipo String global
VBEsp01
24
Declaração 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 dinâmicos
ReDim: redefine os limites de um dado array
Redim Preserve: redefine os limites de um
dado array e preserva os valores nele
existentes (é aplicável apenas quando se
redefine a última dimensão)
LBound: retorna o limite inferior de um dado
array
UBound: retorna o limite superior de um dado
array
VBEsp01
27
Procedimentos
Tipos
Procedimentos
 Funções

Classificação
Da linguagem
 De eventos
 Do usuário

VBEsp01
28
Definições
Procedimentos e funções da linguagem são
aqueles fornecidos pelo fornecedor do
produto VB (Microsoft)
Procedimentos e funções de eventos são
ações em resposta a eventos da interface
Procedimentos e funções do usuário são a
parte do algoritmo implementada pelo
usuário
VBEsp01
29
Procedimentos de eventos
Procedimentos de eventos são iniciados
aplicando um duplo clique no objeto
correspondente, o que abre a janela de
código 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 conteúdo
End If
If Text2.Text = "" Then ‘ Caixa de textos 2 vazia
j=0
Else: j = CSng(Text2.Text) ‘Converter para real o conteúdo
End If
Text3.Text = i + j
End Sub
VBEsp01
31
Procedimentos do usuário
Procedimentos e funções do usuário são
criados da forma:
Abrir a janela de códigos do módulo
 Dar um clique no menu Tools
 Selecionar a opção Add Procedure
 Efetuar as escolhas de tipo, escopo e tipo de
variáveis
 Dar um clique no botão OK
 Digitar o código

VBEsp01
32
Procedimentos do usuário
Sub Nome_do_Procedimento (arg1, arg2, .. argN)
‘ comandos do procedimento
End Sub
VBEsp01
33
Exemplo de procedimento do
usuário
Sub Calculo (X As Variant)
X=X*5
MsgBox “ O resultado desejado é “ & X
End Sub
VBEsp01
34
Funções do usuário
Function Nome_da_Função (arg1, arg2, .. argN)
‘ comandos da função
End Function
VBEsp01
35
Exemplo de Função do usuário
Private Function maximo(i As Double, j As Double)
If i > j Then
maximo = i
Else
maximo = j
End If
End Function
VBEsp01
36
Edição de rotinas do usuário
A visualização e edição das rotinas
(procedimentos e funções) do usuário
podem ser feitas usando:
– Os ComboBoxes da janela de Códigos
– As chamadas da rotina
– O utilitário ObjectBrowser
VBEsp01
37
Edição de rotinas do usuário
usando ComboBoxes
Abrir a janela de código do componente
aonde foi inserida a rotina
No ComboBox de objetos selecionar
General
Abrir a lista de procedimentos
Selecionar o módulo desejado
VBEsp01
38
Edição de rotinas do usuário
usando as chamadas
Abrir a janela de código do componente
aonde foi inserida a rotina
Posicionar o cursor sobre uma chamada à
rotina
Pressionar as teclas SHIFT+F2
VBEsp01
39
Edição de rotinas do usuário
usando Object Browser
Pressionar F2 ou abrir o menu View e
selecionar Object Browser
Abrir a janela de código 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
Declaração de parâmetros
Os tipos de parâmetros são declarados na
definição das rotinas
Sub Objeto_Evento (arg1 As Tipo_1, arg2 As
Tipo_2, ..., argN As Tipo_N)
‘comandos
End Sub
VBEsp01
41
Exemplo de declaração de parâmetros
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
Declaração de parâmetros
Os argumentos podem ser passados por
referência ou por valor
O default é a passagem por referência
VBEsp01
43
Declaração de parâmetros
Quando não se desejar que a rotina altere os dados
do procedimento chamador deve-se usar a
passagem por valor que pode ser feita:
Na definição 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 declaração Optional especificam-se
argumentos que o usuário pode utilizar ou não
Quando o usuário não especificar argumentos
opcionais serão utilizados argumentos default
Quando se usa a declaração Optional para uma
lista de parâmetros, todos os parâmetros
subsequentes deverão também ser opcionais
VBEsp01
46
Visibilidade de Rotinas
Tal como as variáveis os procedimentos e as
funções podem ser dos tipos
Public
 Private
 Static

O default para as rotinas é Public
Procedimentos de eventos são privados
VBEsp01
47
Estruturas Condicionais
Tipos
If .. End If
Select Case End Select
VBEsp01
48
Exemplo do uso de If
'Testa o número digitado
If Text1.Text = "0" Or Text1.Text = "" Then 'Se for 0 ou vazio
End
'Finaliza a aplicação
ElseIf Text1.Text = "1" Then
'Se for 1
MsgBox "Número 1 foi digitado"
ElseIf Text1.Text = "10" Then
'Se for 10
MsgBox "Número 10 foi digitado"
Else
'Se não for 0,1, 10 ou "" (vazio)
If IsNumeric(Text1.Text) Then 'Se o conteúdo for numérico
MsgBox "Número Inválido"
ElseIf VarType(Text1.Text) = vbString Then
MsgBox "Não são permitidas as entradas de Strings"
Else
MsgBox "Conteúdo Inválido"
End If
VBEsp01
End If
49
Estruturas Condicionais
If .condição Then
comandos
[ElseIf condiçãox Then]
comandos
[Else]
comandos
End If
VBEsp01
50
Estruturas Condicionais
Select Case condição
[Case expressão1]
[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="Março"
Case 12
stringMes="Dezembro"
End Select
VBEsp01
52
Repetições
Tipos
Do While
While
For
VBEsp01
53
Repetições
Do [{While | Until} condição]
[comandos]
[Exit DO]
[comandos]
Loop
VBEsp01
54
Repetições
While condição
[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
Repetições
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%
'Variável 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 código
permitindo que os objetos apareçam
implícitos 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 execução de uma
seqüência 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
Cláusula ParamArray
Esta cláusula permite que um array seja
definido como um parâmetro de
procedimento.
A chamada do procedimento pode ser feita
passando quantos parâmetros forem
necessários.
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 podese chamar um procedimento ou função
passando os argumentos em qualquer
ordem.
Dentro da chamada deve-se usar o nome do
parâmetro com atribuição de valor pelos
símbolos “:=“.
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
(.vdp)
De Formulários (.frm)
De Módulos
(.bas)
De Controles ActiveX
(.ocx)
De Controles do
usuário
(.ctl)
VBEsp01
De páginas de
propriedades (.pag)
De recursos
(.res_)
Externos
(.exe,
.dll e outros)
68
Componentes de um Projeto
Arquivos de Projeto contém um índice dos
componentes do Projeto
Documentos ActiveX são semelhantes a
formulários visualizados por browsers
Controles do usuário são controles ActiveX
criados pelos usuários
VBEsp01
69
Componentes de um Projeto
Páginas de propriedades são arquivos para
gerar interfaces de manipulação dos
controles ActiveX gerados pelo usuário
Arquivos de Recursos armazenam dados
referentes a textos, menus, mapas de bits,
sons, etc.
VBEsp01
70
Download

A Linguagem Visual Basic (VB) - Instituto de Computação