Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 1
AGENDA
1. Introdução
2. Criação de Macros
3. Execução de Macros
4. Variáveis
5. Linguagem VBA
6. Ranges
7. Editor VBA
8. Funções e Sub-rotinas
2
AGENDA
1. Introdução
2. Criação de Macros
3. Execução de Macros
4. Variáveis
5. Linguagem VBA
6. Ranges
7. Editor VBA
8. Funções e Sub-rotinas
3
O QUE É UMA MACRO?
Uma macro é uma seqüência de comandos (cliques de mouse ou toques de teclado) que
são gravados em um Módulo VBA e podem ser executados, sempre que necessário
Gravador de Macros
Editor de programação em VBA
4
EXEMPLOS VISAGIO
5
AGENDA
1. Introdução
2. Criação de Macros
3. Execução de Macros
4. Variáveis
5. Linguagem VBA
6. Ranges
7. Editor VBA
8. Funções e Sub-rotinas
6
CRIANDO MACROS PELO GRAVADOR
7
CRIANDO MACROS PELO GRAVADOR
8
CRIANDO MACROS PELO GRAVADOR
9
EDITOR VBA
• Guia Desenvolvedor > Grupo Código > Visual Basic ou ALT + F11
10
CRIANDO MACRO EDITOR VBA - INSERINDO UM MÓDULO
11
CRIANDO MACRO EDITOR VBA - INSERINDO UM PROCEDIMENTO
12
CRIANDO MACRO EDITOR VBA - INSERINDO UM MÓDULO
13
AGENDA
1. Introdução
2. Criação de Macros
3. Execução de Macros
4. Variáveis
5. Linguagem VBA
6. Ranges
7. Editor VBA
8. Funções e Sub-rotinas
14
POSSIBILIDADES
Comando no
Run
Menu
Associando a
Editor VBA macro a um
objeto
15
MÉTODO RUN
16
MÉTODO RUN
17
ASSOCIANDO MACROS A OBJETOS
18
EXERCÍCIO DE FIXAÇÃO 1
1. Abra o Excel
3. Clique na célula A4
19
EXERCÍCIO DE FIXAÇÃO 1
8. No campo Tecla de atalho digite L (maiúsculo). Observe que o Excel troca para
Ctrl+Shift+L. Com isso estamos associando a combinação de teclas com a macro
FormataVermCinza, ou seja, cada vez que quisermos executar essa macro basta, pressionar
Ctrl+Shift+L.
20
EXERCÍCIO DE FIXAÇÃO 1
10. Clique em OK. A gravação da Macro será iniciada. Todos os comandos que você
executar, durante a gravação da Macro, farão parte da Macro
11. Observe que na barra inferior de status apareceu a opção de parar a macro ( ). A
partir de agora devemos escolher os comandos que farão parte da macro. Após ter
executado os comandos que farão parte da macro, basta clicar no botão para encerrar a
gravação da Macro
21
EXERCÍCIO DE FIXAÇÃO 1
16. Agora a macro FormataVermCinza foi criada e podemos utilizá-la sempre que
necessário
22
EXERCÍCIO DE FIXAÇÃO 1
1. Clique na Célula B7
2. Pressione Ctrl+Shift+L
4. Também é possível executar a macro usando o comando Guia Desenvolvedor > Grupo
Código > Macros
23
EXERCÍCIO DE FIXAÇÃO 1
5. Clique na célula B5
7. Será exibida a janela Macro, onde são listadas todas as macros existentes na pasta de
trabalho atual (no arquivo carregado no Excel), conforme indicado na figura:
24
EXERCÍCIO DE FIXAÇÃO 1
25
AGENDA
1. Introdução
2. Criação de Macros
3. Execução de Macros
4. Variáveis
5. Linguagem VBA
6. Ranges
7. Editor VBA
8. Funções e Sub-rotinas
26
VARIÁVEIS
Declaração de variáveis:
Dim <Nome_Variável> As <Tipo>
Dim intColuna as Integer
Declaração de variáveis:
Dim <Nome_Variável> As <Tipo>
Dim intColuna as Integer
27
VARIÁVEIS
Tipo de Tamanho
Descrição Valores
Dado da Memória
Byte 1 byte Representa números não negativos 0 a 255
Boolean 2 bytes Valores verdadeiro ou falso True ou False
Integer 2 bytes Inteiros (não decimais) -32.768 a +32.767
Long 4 bytes Inteiros longos (não decimais) -2.147.483.648 a +2.147.483.647
Single 4 bytes Números de ponto flutuante com precisão simples -3.4e38 a +3.4e38
Double 8 bytes Números de ponto flutuante com precisão simples -1,8e308 a +1,8e308
Currency 8 bytes Ponto flutuante com número fixo de casas decimais -922.337.203.685.477,5808 a
+922.337.203.685.477,5807
Date 8 bytes Data e Hora – O tipo Date é representado internamente por 1 de Janeiro de 100 a
um ponto flutuante. A parte inteira do número representa a 31 de Dezembro de 9999
data, e a parte decimal representa a hora
Object 4 bytes Uma referência a um objeto Qualquer referência de objeto
String Varia Um conjunto de caracteres. O tipo String pode ser definido Fixo – Até 65.500 caracteres
para um comprimento fixo ou variável, embora ser mais Variável – Até aproximadamente 2
comumente definido com comprimento variável bilhões de caracteres
Variant Varia Pode armazenar datas, números de ponto flutuante ou Número – mesmo do tipo Double
strings, e deve ser usado quando não há certeza de qual tipo String – mesmo do tipo String
de dado esperar
28
VARIÁVEIS - OBJETOS
29
VARIÁVEIS - OBJETOS
30
VARIÁVEIS - ARRAYS
“Um Array é uma variável que representa um conjunto de variáveis do mesmo tipo. Os
Arrays podem ser multidimensionais, onde todas as dimensões são indexadas.”
Declaração de arrays:
Dim <Nome_Array> (Qx) As <Tipo>
Dim <Nome_Array> (Qx,Qy) As <Tipo>
31
VARIÁVEIS – DECLARAÇÃO FORÇADA (OPTION EXPLICIT)
Sub DeclaracaoForcada()
Nome = “Visagio”
Msgbox Nome
End sub
2. Pressione F5
4. Pressione F5 novamente
O que acontece?
O “Option Explicit” obriga que a variável seja declarada, caso contrário uma mensagem de
erro é enviada Variable Not Defined
32
VARIÁVEIS NÃO DEFINIDAS SEM OPTION EXPLICIT
VANTAGENS DESVANTAGENS
33
AGENDA
1. Introdução
2. Criação de Macros
3. Execução de Macros
4. Variáveis
5. Linguagem VBA
6. Ranges
7. Editor VBA
8. Funções e Sub-rotinas
34
SINTAXE VBA
Imagine que você escreverá instruções para um usuário ativar uma determinada planilha.
A instrução “Ativar a planilha Teste.xls” seria semelhante a:
“Ativar a planilha C:\Teste.xls”
Porém, o VBA trabalha de forma diferente! Por se tratar de uma linguagem orientada a
objeto, os objetos (nomes) são mais importantes, portanto:
Dim Wb as Excel.Workbook
Set Wb = Workbooks.Open(“C:\Teste.xls”)
Wb.Activate
A estrutura básica de uma linha de código do VBA é “Objeto.Método”, por exemplo:
Wb.Save (“Salvar planilha”)
Wb.Close (“Fechar planilha”)
Wb.Activate (“Ativar planilha”)
35
SINTAXE VBA
Agora imagine que exista uma “Coleção” de planilhas (abas) dentro do Teste.xls, mas você
gostaria ativar a aba Teste_1, portanto:
Wb.Sheets(“Teste_1”).Activate
36
SINTAXE VBA
Para finalizar o conceito, imagine que você deseja que a aba “Teste_1” não fique visível,
logo:
Wb.Sheets(“Teste_1”).Visible = xlSheetHidden
37
EXERCÍCIO DE FIXAÇÃO 2
Arquivo: Ex_VBA_Dashboard_ANP
Dica: Altere a propriedade Application.DisplayAlerts para que as mensagens do Excel não sejam
exibidas durante a execução do código
38
AGENDA
1. Introdução
2. Criação de Macros
3. Execução de Macros
4. Variáveis
5. Linguagem VBA
6. Ranges
7. Editor VBA
8. Funções e Sub-rotinas
39
RANGES
Uma range pode se referenciar a uma célula, linha, coluna ou mesmo um grupo de cada
um destes
• Range (“C4”) Célula C4
• Range(“3:3”) Linha 3
• Range(“D:D”) Coluna D
• Range(“A1:B5”) Células de A1 a B5
40
RANGES
41
EXERCÍCIO DE FIXAÇÃO 2 (CONT.)
Arquivo: Ex_VBA_Dashboard_ANP
42
AGENDA
1. Introdução
2. Criação de Macros
3. Execução de Macros
4. Variáveis
5. Linguagem VBA
6. Ranges
7. Editor VBA
8. Funções e Sub-rotinas
43
EDITOR VBA
Janela de
Project Edição
Explorer
Properties
Windows
44
EDITOR VBA – PROJECT EXPLORER
Funções e Rotinas
para objetos dentro
das planilhas
45
DEBUGANDO UMA MACRO
46
DEBUGANDO UMA MACRO
Coloque a janela do Excel e do Editor de VBA lado a lado e prossiga com a depuração
linha a linha (F8)
47
DEBUGANDO UMA MACRO
48
EXERCÍCIO DE FIXAÇÃO 2 (CONT.)
Arquivo: Ex_VBA_Dashboard_ANP
49
AGENDA
1. Introdução
2. Criação de Macros
3. Execução de Macros
4. Variáveis
5. Linguagem VBA
6. Ranges
7. Editor VBA
8. Funções e Sub-rotinas
50
SUB-ROTINAS
“As sub-rotinas são aquelas cuja definição é delimitada pelas palavras-chave Sub e End
Sub. Elas não retornam valor, somente executam uma sequência de tarefas.”
<corpo_da_macro>
End Sub
Exemplo:
End Sub
51
FUNÇÕES
“Funções são rotinas cuja definição começa com a palavra-chave Function e termina com
as palavras End Function. Todas as funções pré-definidas no Excel são deste tipo de rotina.
Todos os elementos de input e output de uma função têm um tipo de dados atribuído.
Assim, a função deverá ser definida do tipo de dados que ela envia para o exterior. A sua
definição tem a estrutura seguinte”
Exemplo:
End Function
52
EXERCÍCIO DE FIXAÇÃO 3
Arquivo: Ex_VBA_Funcoes
Aba: Funções
2 – Criar uma rotina que leia os dois números (número 1 e número 2) e coloque os valores
da soma, multiplicação e média desses números, nos campos soma, multiplicação e
média, respectivamente, usando as funções previamente criadas
4 – Criar rotina que apague o conteúdo das células utilizadas (B3 à F3)
53
EXERCÍCIO DE FIXAÇÃO 4
Arquivo: Ex_VBA_Funcoes
Aba: Email
1 – Criar uma função que retorne o Nome, e outra que retorne o Sobrenome do
funcionário
2 – Criar uma rotina que coloque esses valores nas células corespondentes
Funções úteis:
- Strings.Left$()
- Strings.Right$ ()
- Strings.InStr()
- WorksheetFunction.Proper
54
OBRIGADO!
55