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 3

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 4

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 5

Tipos de Dados
Variant tipo genrico 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,94065645841247E324 (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 bilhes de caracteres 65.400 caracteres se tamanho fixo Type definido pelo utilizador VBEsp01 7

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 9

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 Private ou Dim: visvel dentro do seu mdulo e durante toda a execuo Dim: visvel dentro do seu procedimento e durante a sua execuo Static: visvel VBEsp01 dentro do seu

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): Const LEFT_BUTTON = 1 Symbolic constants: Const PI = 3,14

VBEsp01

18

Operadores
Texto

& (concatenao) = (igual a) > (maior que) < (menor que) <> (diferente de) >= (maior ou igual) <= (menor ou igual) Like (padres de texto) Is (referncia de objetos)
VBEsp01 19

Relacionais

Precedncia de Operadores
Maior precedncia ^ exponenciao - negao * , / multiplicao e diviso \ diviso inteira Mod resto da diviso + , - adio e subtrao & concatenao = , > , < , <> , >= , <= , Like , Is comparao And , Or , Not , Imp , Xor , Eqv lgica Menor precedncia
VBEsp01 20

Outros caracteres
ou Rem comentrios : 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 Redim Preserve: 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 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 podese 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 (.vdp) De Formulrios (.frm) De Mdulos (.bas) De Controles ActiveX (.ocx) De Controles do usurio (.ctl) De pginas de propriedades (.pag) De recursos (.res_) Externos (.exe, .dll e outros)

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