Escolar Documentos
Profissional Documentos
Cultura Documentos
Tutoriais de VBA
Escopo da Apresentação
Integração do VBA com Excel
Descrição
ç do ambiente de p
programação
g ç do
VBA
Conceitos básicos de programação
Exemplos usando VBA
Tutoriais de VBA
Background do BASIC
BASIC = Beginner’s
g All-Purpose
p Symbolic
y Instruction Code
Tutoriais de VBA
Motivação para se usar o VBA
C
Complemento
l t para o E
Excell
VBA
LOOPS: ineficiente no Excel,
Excel eficiente no VBA
Tutoriais de VBA
Ambiente de Programação
Nenhuma instalação extra é necessária para se usar o VBA
P
Para acessar o VBA vá: l d Î CódigoÎ
á Desenvolvedor
D Códi Î Macro
M
Tutoriais de VBA
Segurança
Clique no botão
Cli b tã do
d Office
Offi e em Opções
O õ do d Excel.
E l Na
N janela
j l Opções
O õ
do Excel clique em Central de Confiabilidade e a seguir em
Configuraçãoes da Central de Confiabilidade. Marque o botão
Habilitar todas as MACROS.
Tutoriais de VBA
Visual Basic Editor (VBE)
VBE pode ser acessado indo para: guia Desenvolvedor Î grupo
Código Î Visual Basic ou pressionando Alt + F11
Tutoriais de VBA
Criando um Módulo em VBA
Para iniciar a programação devemos primeiro criar um Módulo na pasta
(Workbook)
Tutoriais de VBA
Janela Imediata
A Janela
J l Imediata
I di t poded ser acesssada d indo E ibi Î Janela
i d a: Exibir J l “Verificação
“V ifi ã
imediata ou pressionando Ctrl + G. Ela é como uma Janela Command Window
Tutoriais de VBA
Objetos Básicos do VBA
E t são
Estes ã os objetos
bj t mais
i freqüentemente
f ü t t usados
d dod VBA:
VBA
Tutoriais de VBA
Tipos de Dados do VBA (I)
Tutoriais de VBA
Variáveis Especiais
Contadores
C t d e Acumuladores:
A l d variáveis
iá i especiais
i i que
armazenam certos valores quando se executa um LAÇO
Contadores: armazena um, usado para contagem
Exemplo:
Dim Iteration as Long
…
Iteration = Iteration + 1
…
Acumuladores: armazena qualquer valor, usado para
somatórios
Exemplo:
E l
Dim Somatotal as Double
…
Somatotal = Somatotal + Saldo
Tutoriais de VBA
…
Estruturas Padrões de Programação
If – End If
Bifurcação
Select Case – End Select
For – Next
Circulação
Do While - Loop
Exit
Declarações Especiais
Sintaxe:
If <Condição> then
[Instruções se a Condição if for Verdadeira]
Else
[Instruções se a Condição if for Falsa]
End If
Tutoriais de VBA
If – End If (II)
Exemplo:
Sub Multiplicação1()
Dim Mult as Double
Mult = Range(“a1”).Value*Range(“b1”).Value
If Mult > 20 Then
MsgBox “Maior
Maior que 20"
Else
MsgBox “Menor que ou igual a 20"
End If
End Sub
Tutoriais de VBA
Select Case – End Select (I)
Esta estrutura é análoga à estrutura If – End If
Ela foi projetada para evitar os If – End If aninhados
Sintaxe:
Tutoriais de VBA
Select Case – End Select (II)
E
Exemplo
l
Sub Multiplicacao2()
Dim Mult as Double
Mult = Range(“a1”).Value*Range(“b1”).Value
Select Case Mult
Case Is < 10
MsgBox “Menor que 10"
Case Is s < 15
5
MsgBox “Maior que ou igual a 10 e menor que 15"
Case Is < 20
MsgBox “Maior
Maior que ou igual a 15 e menor que 20
20"
Case Else
MsgBox “Maior que ou igual a 20"
End Select
End Sub
Tutoriais de VBA
For – Next (I)
Sintaxe:
Tutoriais de VBA
For – Next (II)
Exemplo:
Sub CalcularTotal1()
Dim Contador As Integer
Dim Total As Double
Total=0
For Contador = 2 To 15
If Range(
Range(“a"
a & Contador).Value
Contador) Value = "Centro"
Centro Then
Total = Total + Range(“b" & Contador).Value
End If
Next
Range(“d2").Value = Total
End Sub
Tutoriais de VBA
Do While – Loop (I)
Este é outro laço comumente usado
Especificamos que o laço será repetido enquanto uma certa condição
f verdadeira
for d d i
Sintaxe:
Do While <Condição>
[Instruções Enquanto a Condição for Verdadeira]
Loop
Tutoriais de VBA
Do While – Loop (II)
Exemplo:
Sub Calcularotal2()
Dim Contador As Integer
Dim Total As Double
Contador = 2
Total = 0
Do While Range(“a" & Contador).Value <> “Sul"
Total = Total + Range(“b" & Contador).Value
C t d = Contador
Contador C t d +1
Loop
Range(“d2").Value = Total
End Sub
Tutoriais de VBA
Exit (I)
Esta declaração é usada para encerrar o bloco:
For – Next Exit For
Do While – Loop Exit Do
Function – End Function Exit Function
Sub – End Sub Exit Sub
Sub CalcularTotal3()
Dim Contador As Integer
Dim Total As Double
Total=0
For Contador = 2 To 15
If Range(“b" & Contador).Value < 0 Then
Msgbox “Há um erro no número registrado ” & Contador - 1
Total 0
Total=0
Exit For
End If
If Range(“a"
g ( & Contador).Value
) = "Centro" Then
Total = Total + Range(“b" & Contador).Value
End If
Next
Range(“d2").Value = Total
End Sub
Tutoriais de VBA
With – End With (I)
Esta estrutura é usada para encurtar as declarações e acelerar a
execução do código
Embora
E b seja
j similar,
i il NÃO é uma estrutura
t t d laço
de l
Sintaxe:
With <Objeto>
[Instruções]
End With
Tutoriais de VBA
With – End With (II)
Sub CalcularTotal()
Dim Contador As Integer
Dim Total As Double
Contador = 2
Total = 0
Do While Worksheets(“Plan1").Range(“a" & Contador).Value <> “Sul"
Total = Total + Worksheets(“Plan1").Range(“b" & Contador).Value
C t d = Contador
Contador C t d +1
Loop
Worksheets(“Plan1").Range(“d2").Value = Total
End Sub
Tutoriais de VBA
With – End With (III)
Sub CalcularTotal()
Dim Contador As Integer
Dim Total As Double
Contador = 2
Total = 0
With Worksheets(
Worksheets(“Plan1")
Plan1 )
Do While .Range(“a" & Contador).Value <> “Sul"
Total = Total + .Range(“b" & Contador).Value
Contador = Contador + 1
Loop
.Range(“d2").Value = Total
E d With
End
End Sub
Tutoriais de VBA
Rodando um Programa
Tutoriais de VBA
Function Procedures (I)
Sintaxe:
Exemplo:
Tutoriais de VBA
Localizando as Funções do
Excel
Todas as funções que criamos podem ser encontradas e executadas
em: Inserir Î Função… Î Definida pelo usuário
Tutoriais de VBA
Sub Procedures (I)
Sub Procedures: conjuntos de instruções que realizam certas
tarefas
Elas
El PODEM modificar
difi os objetos
bj t (pex.:
( modificar
difi um valor
l dde
célula)
Elas NÃO p podem ser executadas de uma célula ((como uma
função Excel ou uma Function Procedure)
Elas podem ser executadas manualmente do VBA Editor, da
Janela Macro,
Macro usando Formulários numa planilha,
planilha etc
Sintaxe:
Sub CalcularTotal2()
Dim Contador As Integer
Dim Total As Double
Contador = 2
Total = 0
Do While Range(“a"
Range( a & Contador).Value <> “Sul"
Sul
Total = Total + Range(“b" & Contador).Value
Contador = Contador + 1
Loop
Range(“d2").Value = Total
End Sub
Tutoriais de VBA
Executando um Sub Procedures
no VBE
Colocando o cursor na macro podemos executar, ir para: Executar Î Executar
Sub/UserForm, ou pressionando F5
Podemos também usar a Janela Imediata para executar as nossas macros
Mas gostaríamos de executar nossas macros do Excel…
Tutoriais de VBA
Executando Sub Procedures no Excel
(I)
Todos os Sub Procedures que criamos podem ser encontrados e executados
em: Desenvolvedor Î Código Î Macros. Esta maneira de executar é
enrolada, mas existe uma outra muita mais fácil
Tutoriais de VBA
Executando Sub Procedures no Excel
(II)
Podemos
P d executar
t nossas
macros usando Formulários
Formulários melhoram
substancialmente nossas
planilhas e dão a elas um aspecto
profissional Professional
Programming
g g
Nota: existem 2 versões de
Formulários:
“Amateur”
¾ Formulário “Completo”: no menu Programming
de Caixa de Ferramentas de
Controle
¾ Formulário “Simplificado”:
p no
menu Formulário
Tutoriais de VBA
Formulários (II)
Button:
B tt apenas executa
t uma macro quando
d pressionado
i d
Tutoriais de VBA
Formularios (III)
Scroll
S ll Bar:
B rola
l através
t é de d um intervalo
i t l de
d valores
l
Tutoriais de VBA
Executando Macros com um
Button
Esta é a Forma natural de se executarem macros de uma planilha.
Contudo, podemos atribuir uma macro a qualquer outro Formulário
Tutoriais de VBA
Propriedades de uma Group
Box
3-D shading: dá o aspecto de um Formulário 3-D
q
Nota: este Formulário é usado freqüentemente para melhorar o aspecto
p p
visual da planilha. Contudo, é essencial para agrupar Option Buttons
Tutoriais de VBA
Propriedades do Button
Tutoriais de VBA
Propriedades da Check Box
Tutoriais de VBA
Propriedades do Option Button
3-D shading:
g dá o aspecto
p de Formulário 3-D
Tutoriais de VBA
Propriedades da List Box
Tutoriais de VBA
Propriedades of Combo Box
Tutoriais de VBA
Propriedades da Scroll Bar
Current Value: mostra o valor atual da Scroll Bar
Tutoriais de VBA
Exemplo de Excel + VBA
Tarefas:
Tutoriais de VBA
Gravador de Macro
O Gravador de Macro é uma característica muito importante do VBA (e de
muitas outras linguagens)
Sua intenção é principalmente ajudar os usuários do Excel a criarem macros
(e acelerar tarefas repetitivas)
Contudo, um uso inteligente do Gravador de Macro pode expandir o Excel
além do seu escopo original e acelerar o processo de aprendizagem de
programação
Podemos acessar isto em: Ferramentas Î Macro Î Gravar Nova Macro…
Tutoriais de VBA