O documento apresenta um resumo dos tópicos abordados em seis cursos de Excel e VBA, incluindo: 1) macros gravadas e VBA, 2) interface com o usuário, 3) tipos comuns de macros, 4) formulários, 5) figuras e gráficos, e 6) interface com outros arquivos.
2. Ementa
1. Macros gravadas
2. Elaboração de macros usando VBA
3. Interface com o usuário
4. Tipos comuns de macros
5. Formulários
6. Figuras e gráficos
7. Interface com outros arquivos
Curso de Excel + VBA 2
3. 1. Macros gravadas
• Habilitar a guia “desenvolvedor”
Arquivo > Opções
Curso de Excel + VBA 3
Cria um botão
4. 1. Macros gravadas
* salvar a pasta como .xlsm (habilitada para macro)
Curso de Excel + VBA 4
A macro deve ser atribuída
ao botão clicando-se com o
botão direito no mesmo.
Inicia a
gravação
Para a
gravação
5. Exemplo
Atribuir a funcionalidade “Dados > Teste de
Hipóteses > Atingir Meta” do Excel a um botão, para
zerar uma função objetivo.
Curso de Excel + VBA 5
𝑭 𝑶𝑩𝑱 = −𝟐 𝒍𝒐𝒈
𝟐, 𝟓𝟏
𝑹𝒆 𝒇
−
𝟏
𝒇
= 𝟎
A B
1 Re 500.000
2 f 10
3 FOBJ 9,2824
Dado de entrada
Valor a ser modificado
Valor a ser zerado
6. 2. Elaboração de Macros usando VBA
Curso de Excel + VBA 6
Módulos
Planilhas
(recebem um nome fixo no VBA)
Rotinas do VBA
7. 2.1. Tipos de variável
• Tipos de variáveis numéricas
– Byte: valor de 0 a 255
– Integer: valor inteiro de -32.768 a 32.767
– Long: valor de -2.147.483.648 a 2.147.483.648
– Single:
valor de -3,402823E+38 a -1,401298E-45
ou de 1,401298E-45 a 3,402823E+38
– Double:
valor de -1.79769313486232e+308 a -4.94065645841247E-324
ou de 4.94065645841247E-324 a 1.79769313486232e+308
Curso de Excel + VBA 7
8. 2.1. Tipos de variável
• Tipos de variáveis não numéricas
– String (tamanho variável)
Dim VARIAVEL As String
– String (tamanho fixo de N caracteres)
Dim VARIAVEL As String * N
– Date
– Boolean
– Object
Dim VARIAVEL As TIPO_DA_VARIAVEL
Curso de Excel + VBA 8
9. 2.2. Objetos
• Objetos – definição da estrutura e criação:
Public Type Estrutura
nome As String
idade As Integer
cpf As Long
End Type
Dim estrutura1 As Estrutura
Dim estrutura1(0 to 10) As Estrutura
Curso de Excel + VBA 9
Deve ser definido fora
de qualquer rotina
cria um vetor com
11 estruturas
cria uma
estrutura
10. 2.2. Objetos
• Objetos – leitura ou gravação de dados:
estrutura1.nome = “nome da pessoa”
estrutura1.idade = 99
estrutura1.cpf = 123456789
OU
estrutura1(0).nome = “nome da pessoa”
estrutura1(0).idade = 99
estrutura1(0).cpf = 123456789
Curso de Excel + VBA 10
11. 2.3. Arrays
• Vetores/Matrizes
– Dim vetor(a to b):
cria um vetor cujos índices são números inteiros de a até b
– Dim matriz(a to b, c to d):
cria uma matriz cujos índices das linhas são números inteiros de
a até b, e das colunas são números inteiros c até d
– Lbound(matriz, 1) e Ubound(matriz, 1):
índices das linhas inicial e final da matriz
– Lbound(matriz, 2) e Ubound(matriz, 2):
índices das colunas inicial e final da matriz
Curso de Excel + VBA 11
12. 2.4. Loops e Branches
While condição
ações
Wend
For i = 1 To N
ações
Next
Curso de Excel + VBA 12
If condição1
ações
Elseif condição2
ações
Else
ações
End If
13. 2.5. Funções
• Funções pré-definidas
Abs(n) Retorna o valor absoluto (sem sinal), do número n.
Exp(n) Retorna o número e=2,7183, elevado no número n.
Log(n) Retorna o logaritmo natural de um número n.
Rnd(n) Retorna um número aleatório entre 0 e 1.
• Funções personalizadas
Function SOMA( X As Double, Y As Double ) As Double
SOMA = X + Y
End Function
Curso de Excel + VBA 13
14. 2.6. Interface com células
• Ler conteúdo de células
VARIAVEL = Plan1.Cells(linha, coluna)
• Escrever em células
Plan1.Cells(linha, coluna) = VARIAVEL
Curso de Excel + VBA 14
15. 2.7. Tratamento de erros
• Tratamento genérico
On Error GoTo erro1
• Tratamento específico
If “Condição de erro 1” Then
GoTo erro1
ElseIf “Condição de erro 2” Then
GoTo erro2
End If
Curso de Excel + VBA 15
Ao final da rotina
erro1:
‘código a ser executado
no caso do erro 1
Exit Sub
erro2:
‘código a ser executado
no caso do erro 2
Exit Sub
16. Exemplo
Criar uma macro que preencha automaticamente o
nome, o RG e o CPF do cliente quando o usuário
inserir seu número de registro.
Curso de Excel + VBA 16
A B C D E F G
1 Nome Ana Ana 1234 0001
2 RG 1234 Beatriz 2345 0002
3 CPF 0001 Bruno 3456 0003
4 Cecília 4567 0004
5 nº 1 Fernando 5678 0005
17. 3. Interface com o usuário
3.1. Janela de mensagem
MsgBox(“TEXTO”)
3.2. Janela de diálogo
x = InputBox(“TEXTO”)
3.3. Janela de seleção de arquivo
Fname = Application.GetOpenFilename( _
FileFilter:="Text Files (*.txt), *.txt", _
Title:="Selecione o arquivo contendo os dados", _
MultiSelect:=False)
Curso de Excel + VBA 17
18. Exemplo
Criar uma macro que solicite o nome, o RG e o CPF
do cliente e insira estes dados em uma base sob um
número de registro inserido pelo usuário.
Curso de Excel + VBA 18
A B C D E F G
1 Nome Ana Ana 1234 0001
2 RG 1234 Beatriz 2345 0002
3 CPF 0001 Bruno 3456 0003
4 Cecília 4567 0004
5 nº 1 Fernando 5678 0005
19. 4. Tipos comuns de macros
4.1. Macros para consolidação de informações
4.2. Macros para procedimentos iterativos
4.3. Macros para processamento de texto
Curso de Excel + VBA 19
20. 4.1. Macros para consolidação de informações
• Consolidação: contar ou somar valores de diversas
fontes de dados em uma só tabela-resumo.
• Consiste dos seguintes passos:
– Andar por uma lista ( WHILE )
– Verificar uma informação ( IF )
– Pegar um valor
– Somar no local correto
Curso de Excel + VBA 20
21. Exemplo
Analisar uma lista de empresas que produzem
diversos produtos, e consolidar em uma tabela
quantas produzem cada um deles em cada estado.
Curso de Excel + VBA 21
A B C D E F G
1 Empresa A RJ Ácido Clorídrico Ácido Clorídrico Metanol
2 Empresa B RJ Ácido Clorídrico ES
3 Empresa C SP Metanol MG
4 Empresa D MG Ácido Clorídrico RJ
5 Empresa E ES Metanol SP
6 Empresa F MG Metanol
22. 4.2. Macros para procedimentos iterativos
• Método iterativo: se baseia em tentar atingir um
objetivo, definindo vários pontos para os quais o
cálculo será feito.
• Consiste dos seguintes passos:
– Definir um “chute” inicial
– Definir um objetivo
– Calcular o valor da função no ponto do “chute” inicial
– Se o objetivo não tiver sido alcançado, definir o próximo
ponto de busca
– Calcular novamente o valor da função
– (...)
Curso de Excel + VBA 22
23. Exemplo
Calcular o diâmetro mais econômico para um
gasoduto cujo custo é dado por:
• Sendo que D varia de 10” a 44”, de 2” em 2”
• Sendo que D pode ser qualquer valor de 10” a 44”
• Sendo que D pode ser qualquer valor maior que 0”
Curso de Excel + VBA 23
𝐶𝑈𝑆𝑇𝑂 (𝑈𝑆$) = 8. 106 𝐷 +
50. 109
𝐷2
24. 4.3. Macros para processamento de texto
• Podem ser criadas macros para gerar texto,
analisar texto, ou extrair fragmentos de texto
automaticamente.
• Consiste dos seguintes passos:
– Ler o texto
– Procurar pelos trechos de interesse
– Realizar as ações desejadas
Curso de Excel + VBA 24
25. 4.3. Macros para processamento de texto
• Funções mais usadas:
– concatenate(texto, texto, texto) ou &
concatena duas ou mais variáveis de texto em uma variável contínua.
– instr(início, texto, fragmento)
procura o fragmento de texto dentro da variável de texto, e retorna a
posição de sua primeira ocorrência a partir do caractere desejado.
– mid(texto, início, número)
retira um número definido de caracteres do texto, iniciando no
caractere desejado.
– replace(texto, fragmento1, fragmento2, início da busca, N)
troca os primeiros N “fragmentos1” encontrados em um texto por
“fragmentos2”, iniciando a busca no ponto desejado.
Curso de Excel + VBA 25
26. Exemplo
Retirar coordenadas geográficas de um texto e gerar uma tabela.
Curso de Excel + VBA 26
A B C
1
Ponto 1: N=9.404.560,53 e E=741.645,61;
ponto 2: N=9.404.304,05 e E=741.583,13;
ponto 3: N=9.404.290,89 e E=741.575,92;
ponto 4: N=9.404.280,04 e E=741.565,56;
ponto 5: N=9.404.136,55 e E=741.329,65.
N= E=
2
3
(...) (...) (...)
28. 5. Formulários
• Controles ActiveX (para formulários ou planilhas)
– Geralmente apresentam opções ao usuário
• Toggle Button (on/off)
• Radio Button (seleção única)
• Check Box (seleção múltipla)
• Texto Editável
– Possuem propriedades que podem ser acessadas pela
macro
Curso de Excel + VBA 28
29. Exemplo
Exemplo:
Criar um programa que determine a pressão de um
gás baseado em seu volume, temperatura e número
de mols.
O programa deve permitir escolher entre:
– Equação de Gás ideal ou Van der Waals
– Metano, Etano ou Propano
– Apresentar pressão Absoluta ou Manométrica
Curso de Excel + VBA 29
30. Exemplo
Gás ideal
𝑝𝑉 = 𝑛𝑅𝑇
Van der Waals
𝑝 +
𝑛2 𝑎
𝑉2
𝑉 − 𝑛𝑏 = 𝑛𝑅𝑇
Curso de Excel + VBA 30
a
(L²atm/mol²)
b
(L/mol)
Metano 2,283 0,04278
Etano 5,562 0,06380
Propano 8,779 0,08445
R = 0,082 atm.L/mol.K
31. 6. Figuras e gráficos
• Inserção e formatação de figuras - parâmetros
Plan1.Pictures.Insert("endereço da figura, com extensão").Select
With Selection
.Left = Range("B2").Left ' A figura fica alinhada à esquerda com a célula B2
.Top = Range("B2").Top ' A figura fica alinhada acima com a célula B2
.ShapeRange.LockAspectRatio = msoFalse ' Razão altura/largura não é fixa
.ShapeRange.Height = 100 ' Mudando altura (em pixels)
.ShapeRange.Width = 100 ' Mudando largura (em pixels)
.ShapeRange.Rotation = 45 ' Girando a figura em 45 graus
End With
Curso de Excel + VBA 31
32. 6. Figuras e gráficos
• Inserção de gráficos
Plan1.Shapes.AddChart.Select (gráfico em branco)
ActiveChart.ChartType = xlXYScatterSmooth (tipo dispersão)
ActiveChart.SetSourceData Source:=Range("Plan1!$B$1:$C$22")
• Manipulação de gráficos
ActiveChart.SeriesCollection(1).XValues = "=Plan1!$A$2:$A$50"
ActiveChart.SeriesCollection(1).Values = "=Plan1!$B$2:$B$50“
• Salvamento de gráficos como figuras
É útil para inserir em formulários!
ActiveChart.Export Filename:= “DiretórioNome.jpeg”
Curso de Excel + VBA 32
33. 7. Interface com outros arquivos
• Arquivos .txt
• Planilhas do Excel
• Documentos do Word
• Gerar arquivos PDF
With ActiveSheet
.ExportAsFixedFormat _
Type:= xlTypePDF, _
Filename:= “NOME DO ARQUIVO”, _
OpenAfterPublish:= True
End With
Curso de Excel + VBA 33