Académique Documents
Professionnel Documents
Culture Documents
Introduo
uma linguagem de programao baseada na conhecida linguagem BASIC
Est concebida para funcionar em conjunto com diferentes aplicaes de forma a
potenciar a robustez das mesmas
Enquadra-se nos ambientes de programao baseados no processamento de
sequncia de eventos (event-driven programming)
Histria
Em 1994, foi inicialmente integrado no Excel 5 e a partir da a sua expanso para
outras aplicaes foi gradual
Em 1997, com a sada do Office 97 a Microsoft concretizou um dos seus grandes
objectivos, ter um ambiente de programao completamente integrado nos seus
quatro produtos mais famosos: Word, Excel, Access e PowerPoint
Actualmente, o VBA j por si s um produto independente que outras
companhias podem adoptar e incorporar nas suas aplicaes
Visual Basic for Applications: # 1
Variveis I
Para que servem?
Servem para guardar valores temporariamente em memria
Variveis II
Tipo de variveis
Variant
Boolean
Byte
Integer
Long
Single
Double
Currency
Decimal
Date
String
Object
tipo genrico
True ou False
0 at 255
-32.768 at 32.767
-2.147.483.648 at 2.147.483.647
-3,402823E38 at -1,401298E-45 (para valores negativos)
1,401298E-45 at 3,402823E38 (para valores positivos)
-1,79769313486232E308 at -4,94065645841247E-324 (negativos)
4,94065645841247E-324 at 1,79769313486232E308 (positivos)
-922.337.203.685.477,5808 at 922.337.203.685.477,5807
+/-79.228.162.514.264.337.593.543.950.335 (sem casas decimais)
+/-7,9228162514264337593543950335 (com casas decimais)
1 de Janeiro de 100 at 31 de Dezembro de 9999
1 at aproximadamente 2 bilies de caracteres (65.400 se tamanho fixo)
tipo genrico para referncia a objectos
Visual Basic for Applications: # 3
Operadores I
Aritmticos
+ (adio)
/ (diviso)
Mod (resto da diviso)
- (subtraco e negao)
\ (diviso inteira)
* (multiplicao)
^ (exponenciao)
Or (ou lgico)
Xor (ou exclusivo)
Not (negao)
Eqv (equivalncia lgica)
Relacionais
= (igual a)
<> (diferente de)
Like (como)
Lgicos
And (e lgico)
Imp (implicao)
Texto
& (concatenao)
Operadores II
Precedncias
Operador
^
*,/
\
Mod
+,&
= , > , < , <> , >= , <= , Like
And , Or , Not , Imp , Xor , Eqv
Operao
exponenciao
negao
multiplicao e diviso
diviso inteira
resto da diviso
adio e subtraco
concatenao
comparao
lgica
Outros caracteres
:
_
comentrios
mltiplas instrues na mesma linha
uma instruo em mltiplas linhas
Caixas de mensagem
MsgBox (mensagem)
InputBox (mensagem)
Visual Basic for Applications: # 5
Procedimentos I
Para que servem?
Quando uma dada sequncia de instrues (tarefa) executada repetidamente
em diferentes partes do cdigo, deve ser criado um procedimento que substitua e
concentre num nico local a sequncia de instrues relativa tarefa a executar
O uso de procedimentos aumenta a produtividade do programador pois diminui o
tamanho global do cdigo a escrever, facilita a edio da sequncia de instrues
relativa tarefa em causa, e minimiza a potencial ocorrncia de erros
Procedimentos Sub
So utilizados para executar tarefas independentes
[Public | Private] Sub nome ( [argumentos] )
[...]
[Exit Sub]
[...]
End Sub
Procedimentos II
Procedimentos Function
So utilizados para calcular/retornar valores
[Public | Private] Function nome ( [argumentos] ) [As tipo]
[...]
[nome = expresso]
[Exit Function]
[...]
[nome = expresso]
End Function
Argumentos
Declarar argumentos: argumento [As tipo]
Function area (comp As Integer, alt As Integer) As Integer
Passar argumentos: var = area(5, 4)
Nomear argumentos: var = area (alt:= 4, comp:= 5)
Argumentos opcionais: Optional argumento [As tipo] = valor_por_defeito
Function area (comp As Integer, Optional alt As Integer = 1) As Integer
A declarao de um argumento opcional implica que os argumentos subsequentes
sejam igualmente declarados como opcionais
Visual Basic for Applications: # 7
VBA e Excel I
Editor do Visual Basic
Menu <Ver> seguido das opes <Barras de ferramentas> e <Visual Basic>
Janelas de projecto, de propriedades e de cdigo
VBA e Excel II
Cdigo VBA
como funo
do Excel
VBA e Excel IV
Formulrios
Menu <Ver> seguido das opes
<Barras de ferramentas> e
<Formulrios>
Ligar clulas aos controlos: menu
<Formatar> seguido da opo
<Controlo...> e do separador <Controlo>
Atribuir macros aos controlos: Menu
especfico sobre o controlo seguido da
opo <Atribuir macro...>
Estruturas de Deciso
Execuo condicional
If condio_1 Then
[...]
...
[ElseIf condio_n Then
[...]]
[Else
[...]]
End If
Mltiplos testes
Select Case expresso_a_testar
Case lista_de_expresses_1
[...]
...
[Case lista_de_expresses_n
[...]]
[Case Else
[...]]
End Select
Cdigo em Ciclo
Ciclos condicionais
Ciclos numerveis
Do
[...]
[Exit Do]
[...]
Loop {While | Until} condio
Objectos I
Conceito
Qualquer coisa que numa aplicao se pode ver e manipular de algum modo
Propriedades
As propriedades so os atributos que definem as caractersticas dos objectos
ActiveCell.Formula = "=A1*10"
Objectos II
Mtodos
Os mtodos so aces que descrevem o que os objectos podem fazer
So executados sobre os objectos e podem conter ou no argumentos
ActiveCell.Clear
ActiveCell.AddComment "comentrio"
Eventos
Os eventos so algo que acontece aos objectos
Ocorrem como resultado de aces do utilizador, do sistema ou do prprio cdigo
Private Sub Workbook_Open()
Private Sub Worksheet_Activate()
Objectos III
Hierarquia de objectos
Application: objecto de topo da hierarquia de objectos
Caminhos hierrquicos
Application.Workbooks(Livro1).Worksheets(Folha1)
Objectos Workbook
Referenciao
Referncia directa ao nome do livro: [Application.]Workbooks(Livro1)
Referncia ao livro que tem o foco: [Application.]ActiveWorkbook
Propriedades
workbook.Name nome do livro (s de leitura)
workbook.Saved indica se existem alteraes por guardar
Mtodos
workbook.Save guarda as ltimas alteraes
workbook.Close(SaveChanges, FileName) fecha o livro
Eventos
Private Sub Workbook_Open() executado quando o livro aberto
Private Sub Workbook_Activate() executado quando o livro passa a activo
Visual Basic for Applications: # 17
Objectos Worksheet
Referenciao
Referncia directa ao nome da folha: [ActiveWorkbook.]Worksheets(Folha1)
Referncia folha que tem o foco: [ActiveWorkbook.]ActiveSheet
Propriedades
worksheet.Name nome da folha
worksheet.Visible indica a visibilidade da folha
Mtodos
worksheet.Delete elimina a folha
worksheet.Calculate recalcula todas as frmulas presentes na folha
Eventos
Private Sub Worksheet_Activate() executado quando a folha passa a activa
Private Sub Worksheet_Calculate() executado sempre que a folha recalculada
Visual Basic for Applications: # 18
Objectos Range
Referenciao
Referncia directa a clulas ou intervalo de clulas:
[ActiveSheet.]Range(A1)
[ActiveSheet.]Range(B2:C3)
[ActiveSheet.]Range(A1,B2:C3)
Referncia directa a clulas:
[ActiveSheet.]Cells(1,1)
[ActiveSheet.]Range(B2:C3).Cells(1,1)
Propriedades
range.Value indica o valor presente no range
range.Formula indica a frmula presente no range (notao standard)
range.FormulaLocal indica a frmula presente no range (notao da instalao)
range.Offset(RowOffset, ColumnOffset) especifica um deslocamento do range
Mtodos
range.Select selecciona o range (Selection referencia o range seleccionado)
range.ClearComments remove os comentrios das clulas do range
range.ClearContents remove o contedo das clulas do range
range.ClearFormats remove a formatao das clulas do range
range.Clear remove tudo o que diz respeito s clulas do range
Visual Basic for Applications: # 19
Objectos Control I
Propriedades comuns
Name nome que identifica o control
Left / Top posio relativa ao canto superior esquerdo do form
Height / Width altura e comprimento do control
BackColor / ForeColor cor do fundo e cor do texto do control
Font tipo de letra do control
Caption texto presente no control
ControlTipText texto de ajuda para quando se mantm o foco sobre o control
TabIndex ordem de navegao do control (utilizando a tecla Tab)
TabStop se False previne a navegao por intermdio da tecla Tab
Visible visibilidade do control
Enabled se False previne o control de receber o foco e responder a eventos
Locked se True previne o utilizador de editar o valor presente no control
Objectos Control II
Command button
Default boto seleccionado por defeito quando se abre o formulrio
Cancel boto seleccionado por defeito no caso do formulrio ser cancelado
CommandButton_Click( ) evento associado aco de premir o boto
Text box
Text texto presente na caixa de texto
PasswordChar caracter especial de edio para introduo de passwords
TextBox_Change( ) ocorre sempre que o contedo da caixa alterado