Buscar

Introdução ao Basic: História, Tipos de Dados e Variáveis

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
A Linguagem Basic
VBEsp01
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
Object referência a objetos 
VBEsp01
*
*
*
Variáveis
Iniciando com letra
Com até 255 caracteres
Sem brancos, espaços, pontos, +/-
Diferentes das palavras reservadas
VBEsp01
*
*
*
Declarações de variáveis
Dim
Com sufixos
Integer %
Long &
Single !
Double #
Currency @
String $
VBEsp01
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
Constantes
As constantes são declaradas da forma
Const nomeDaConstante as tipoDaConstante = valorDaConstante
VBEsp01
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
Outros caracteres
‘ ou Rem comentários
: múltiplas instruções na mesma linha
_ uma instrução em múltiplas linhas
VBEsp01
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
Procedimentos
Tipos
Procedimentos
Funções
Classificação
Da linguagem
De eventos
Do usuário
VBEsp01
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
Procedimentos do usuário
Sub Nome_do_Procedimento (arg1, arg2, .. argN)
‘ comandos do procedimento
End Sub
VBEsp01
*
*
*
Exemplo de procedimento do usuário
Sub Calculo (X As Variant)
 X = X * 5
 MsgBox “ O resultado desejado é “ & X
End Sub
VBEsp01
*
*
*
Funções do usuário
Function Nome_da_Função (arg1, arg2, .. argN)
‘ comandos da função
End Function
VBEsp01
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
Declaração de parâmetros
Os argumentos podem ser passados por referência ou por valor
O default é a passagem por referência
VBEsp01
*
*
*
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
*
*
*
Exemplo de passagem por valor
Sub Calculo (ByVal X As Variant)
 X = X * 5
 MsgBox “ O resultado desejado é “ & X
End Sub
VBEsp01
*
*
*
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
*
*
*
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
*
*
*
Estruturas Condicionais
Tipos
If .. End If
Select Case End Select
VBEsp01
*
*
*
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
*
*
*
Estruturas Condicionais
If .condição Then
 comandos
 [ElseIf condiçãox Then]
 comandos
 [Else]
 comandos
End If
VBEsp01
*
*
*
Estruturas Condicionais
Select Case condição
 [Case expressão1]
 [comandos]
 [Case Else]
 [comandos]
 End Select
VBEsp01
*
*
*
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
*
*
*
Repetições
Tipos
Do While
While
For
VBEsp01
*
*
*
Repetições
Do [{While | Until} condição]
 [comandos]
 [Exit DO]
 [comandos]
Loop
VBEsp01
*
*
*
Repetições
While condição
 [comandos]
Wend
VBEsp01
*
*
*
Exemplo da estrutura While
contador = 0
While menor <= maior
 menor = menor + terceiro
 contador = contador + 1
Wend
Text3.Text = contador
VBEsp01
*
*
*
Repetições
For contador = valor_inic To valor_final [Step incremento]
 [comandos]
 [Exit For]
 [comandos]
Next [contador]
VBEsp01
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
Exemplo de For ... Each
Dim qry As QueryDef
' Processar cada consulta armazenada
 For Each qry In DB.QueryDefs
 QryList.AddItem qry.Name
 Next
VBEsp01
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
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
*
*
*
Projetos Visual Basic
VBEsp01
*
*
*
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
*
*
*
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
*
*
*
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

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais