Upload
sybil
View
28
Download
1
Embed Size (px)
DESCRIPTION
A Linguagem Basic. Histórico. Darthmouth College em 1959 BASIC (Beginners All-Purpose Symbolic Instruction Code) Sub conjunto de FORTRAN Típica de mini computadores Linguagem interpretada. Histórico. Interpretador de pequeno tamanho Crescimento com os micro computadores enorme - PowerPoint PPT Presentation
Citation preview
VBEsp01 1
A Linguagem Basic
VBEsp01 2
Histórico
Darthmouth College em 1959BASIC (Beginners All-Purpose Symbolic Instruction Code)
Sub conjunto de FORTRAN
Típica de mini computadores
Linguagem interpretada
VBEsp01 3
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 4
Histórico
Por diversas razões a linguagem Basic tem sido bastante prestigiada pela MicrosoftEm 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 VB1VB tornou-se uma extensão de Basic
VBEsp01 5
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 ControlO VB4 foi lançado em outubro de 1996O VB5 foi lançado em abril de 1997Em outubro de 1998 foi lançado VB6.Em 2001 foi lançado o Visual Basic .NET
VBEsp01 6
Tipos de Dados
Variant tipo genéricoBoolean True ou FalseByte 0 até 255Integer -32.768 até 32.767Long -2.147.483.648 até 2.147.483.647Single -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 7
Tipos de Dados
Currency -922.337.203.685.477,5808 até 922.337.203.685.477,5807Decimal
+/-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 9999String 1 até aproximadamente 2 bilhões de caracteres 65.400 caracteres se tamanho fixoType definido pelo utilizador
Object referência a objetos
VBEsp01 8
Variáveis
Iniciando com letra
Com até 255 caracteres
Sem brancos, espaços, pontos, +/-
Diferentes das palavras reservadas
VBEsp01 9
Declarações de variáveis
DimCom sufixos Integer % Long & Single ! Double # Currency @ String $
VBEsp01 10
Exemplos de variáveis
vByte = 2vBoolean = TruevInteger = 333vLong = 98007vSingle = 3.141592vDouble = 3.1492574567vCurrency = 426.78vDate = #18/09/1977”#vString = “String de amostragem”
VBEsp01 11
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 12
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 13
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 14
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 15
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 invocadoVariáveis que devem guardar o seu último valor são variáveis estáticasSó se pode declarar objetos estáticos nos procedimentos e não nos módulosPara tornar um objeto estático a sintaxe é
Static nomeDaVariavel as tipoDaVariavel
VBEsp01 16
Visibilidade e longevidade de uma variável
Public: visível em todos os módulos e durante toda a execuçãoPrivate ou Dim: visível dentro do seu módulo e durante toda a execuçãoDim: visível dentro do seu procedimento e durante a sua execuçãoStatic: visível dentro do seu procedimento e durante toda a execução
VBEsp01 17
Constantes
As constantes são declaradas da forma
Const nomeDaConstante as tipoDaConstante = valorDaConstante
VBEsp01 18
Constantes
System-defined constants: True; False; Null; Empty; NothingIntrinsic constants (bibliotecas do VBA): Const LEFT_BUTTON = 1Symbolic constants: Const PI = 3,14
VBEsp01 19
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 20
Precedência de Operadores
Maior precedência^ exponenciação- negação* , / multiplicação e divisão\ divisão inteiraMod resto da divisão+ , - adição e subtração& concatenação= , > , < , <> , >= , <= , Like , Is comparaçãoAnd , Or , Not , Imp , Xor , Eqv lógica
Menor precedência
VBEsp01 21
Outros caracteres
‘ ou Rem comentários: múltiplas instruções na
mesma linha_ uma instrução em
múltiplas linhas
VBEsp01 22
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 23
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 24
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 25
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 26
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 27
Arrays dinâmicos
ReDim: redefine os limites de um dado arrayRedim 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 28
Procedimentos
Tipos Procedimentos Funções
Classificação Da linguagem De eventos Do usuário
VBEsp01 29
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 30
Procedimentos de eventos
Procedimentos de eventos são iniciados aplicando um duplo clique no objeto correspondente, o que abre a janela de código correspondenteSub Objeto_Evento (arg1, arg2, .. argN)
‘ comandos do procedimento
End Sub
VBEsp01 31
Exemplo de procedimentos de eventos
Private Sub cmdExecutar_Click()Dim i, j As SingleIf Text1.Text = "" Then ‘ Caixa de textos 1 vazia i = 0 Else: i = CSng(Text1.Text) ‘Converter para real o conteúdoEnd IfIf Text2.Text = "" Then ‘ Caixa de textos 2 vazia j = 0 Else: j = CSng(Text2.Text) ‘Converter para real o conteúdo End IfText3.Text = i + jEnd Sub
VBEsp01 32
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 33
Procedimentos do usuário
Sub Nome_do_Procedimento (arg1, arg2, .. argN)
‘ comandos do procedimento
End Sub
VBEsp01 34
Exemplo de procedimento do usuário
Sub Calculo (X As Variant)
X = X * 5
MsgBox “ O resultado desejado é “ & X
End Sub
VBEsp01 35
Funções do usuário
Function Nome_da_Função (arg1, arg2, .. argN)
‘ comandos da função
End Function
VBEsp01 36
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 37
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 38
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 39
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 40
Edição de rotinas do usuário usando Object Browser
Pressionar F2 ou abrir o menu View e selecionar Object BrowserAbrir a janela de código do componente aonde foi inserida a rotinaNa ListBox de Classes selecionar o nome do componente aonde foi inserida a rotinaNa ListBox de “Member of...” selecionar a rotina
VBEsp01 41
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 42
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 43
Declaração de parâmetros
Os argumentos podem ser passados por referência ou por valor
O default é a passagem por referência
VBEsp01 44
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)
‘comandosEnd Sub
ou na chamada da rotinaObjeto_Evento (arg1), (arg2), ..., (argN)
VBEsp01 45
Exemplo de passagem por valor
Sub Calculo (ByVal X As Variant)
X = X * 5
MsgBox “ O resultado desejado é “ & X
End Sub
VBEsp01 46
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 47
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 48
Estruturas Condicionais
Tipos
If .. End If
Select Case End Select
VBEsp01 49
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 End If
VBEsp01 50
Estruturas Condicionais
If .condição Then
comandos
[ElseIf condiçãox Then]
comandos
[Else]
comandos
End If
VBEsp01 51
Estruturas Condicionais
Select Case condição
[Case expressão1]
[comandos]
[Case Else]
[comandos]
End Select
VBEsp01 52
Exemplo do uso de Selectmesi=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 53
Repetições
Tipos
Do While
While
For
VBEsp01 54
Repetições
Do [{While | Until} condição]
[comandos]
[Exit DO]
[comandos]
Loop
VBEsp01 55
Repetições
While condição
[comandos]
Wend
VBEsp01 56
Exemplo da estrutura While
contador = 0
While menor <= maior
menor = menor + terceiro
contador = contador + 1
Wend
Text3.Text = contador
VBEsp01 57
Repetições
For contador = valor_inic To valor_final [Step incremento]
[comandos]
[Exit For]
[comandos]
Next [contador]
VBEsp01 58
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 59
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 60
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 61
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 62
Exemplo de For ... Each
Dim qry As QueryDef
' Processar cada consulta armazenada
For Each qry In DB.QueryDefs
QryList.AddItem qry.Name
Next
VBEsp01 63
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 64
ExemploOption ExplicitSub Insere (ParamArray Argumentos()) Dim x as Variant For Each x In Arguments List1.AddItem x NextEnd SubPrivate Sub btnInsere_Click() Insere “Argumento 1”, “Argumento 2”, _ “Argumento 3”End Sub
VBEsp01 65
Argumentos Nomeados
Utilizando-se argumentos com nome pode-se 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 66
Uso de argumentos com nome
Private Sub Command1_Click() Exibir _ pLugar := vbCenter, pMens:= “Argumentos”, pTamanho: = 12End SubPrivate Sub Exibir (pMens As String, pTamanho As Integer,
pPLugar as Integer) Label1.Alignment = pLugar Label1.FontSize = pTamanho Label1.Caption = pMensEnd Sub
VBEsp01 67
Projetos Visual Basic
VBEsp01 68
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)
De páginas de propriedades (.pag)
De recursos (.res_)
Externos (.exe, .dll e outros)
VBEsp01 69
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 70
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.