SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
Excel+VBA
Gabriel de Figueiredo da Costa
Curso de Excel + VBA 1
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
1. Macros gravadas
• Habilitar a guia “desenvolvedor”
Arquivo > Opções
Curso de Excel + VBA 3
Cria um botão
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
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
2. Elaboração de Macros usando VBA
Curso de Excel + VBA 6
Módulos
Planilhas
(recebem um nome fixo no VBA)
Rotinas do VBA
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
(...) (...) (...)
5. Formulários
• Janelas em branco para inserção de botões
Curso de Excel + VBA 27
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
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
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
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
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
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
Obrigado!
Curso de Excel + VBA 34

Mais conteúdo relacionado

Mais procurados

Apresentação Excel
Apresentação ExcelApresentação Excel
Apresentação ExcelTic Eslc
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresWillians Miyabara
 
Aula 1 Excel básico
Aula 1   Excel básicoAula 1   Excel básico
Aula 1 Excel básicoSaulo Said
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 
Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010Daniel Brandão
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaMario Sergio
 
Apostila excel 2016
Apostila excel 2016Apostila excel 2016
Apostila excel 2016ProsubSig
 
Exercicios de Algoritimos
 Exercicios de Algoritimos Exercicios de Algoritimos
Exercicios de Algoritimossandra avenia
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlgWillians Miyabara
 
Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Cibele Kanegae
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Algoritmos - Aula 05 A - Correcao de Exercicios
Algoritmos - Aula 05 A - Correcao de ExerciciosAlgoritmos - Aula 05 A - Correcao de Exercicios
Algoritmos - Aula 05 A - Correcao de ExerciciosRodrigo Kiyoshi Saito
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmosMauro Pereira
 

Mais procurados (20)

Apresentação Excel
Apresentação ExcelApresentação Excel
Apresentação Excel
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Aula I - Excel
Aula I - ExcelAula I - Excel
Aula I - Excel
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
 
Aula 1 Excel básico
Aula 1   Excel básicoAula 1   Excel básico
Aula 1 Excel básico
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Apostila excel basico
Apostila excel basicoApostila excel basico
Apostila excel basico
 
Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs Java
 
Aula 7 - Planilhas
Aula 7 - PlanilhasAula 7 - Planilhas
Aula 7 - Planilhas
 
Excel macros
Excel macrosExcel macros
Excel macros
 
Apostila excel 2016
Apostila excel 2016Apostila excel 2016
Apostila excel 2016
 
Exercicios de Algoritimos
 Exercicios de Algoritimos Exercicios de Algoritimos
Exercicios de Algoritimos
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
 
Introdução ao design de teste de software
Introdução ao design de teste de softwareIntrodução ao design de teste de software
Introdução ao design de teste de software
 
Excel basico
Excel basicoExcel basico
Excel basico
 
Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Algoritmos - Aula 05 A - Correcao de Exercicios
Algoritmos - Aula 05 A - Correcao de ExerciciosAlgoritmos - Aula 05 A - Correcao de Exercicios
Algoritmos - Aula 05 A - Correcao de Exercicios
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
 

Semelhante a Curso Excel VBA: Introdução à programação com macros e VBA

Aula de informatica 02
Aula de informatica 02Aula de informatica 02
Aula de informatica 02Nilberte
 
Planilha Eletrônica BrOffice CALC
Planilha Eletrônica BrOffice CALCPlanilha Eletrônica BrOffice CALC
Planilha Eletrônica BrOffice CALCeliz71
 
Aula 5 WEB
Aula 5 WEBAula 5 WEB
Aula 5 WEBgsbq
 
Aula 5
Aula 5Aula 5
Aula 5gsbq
 
Excel curso avançado
Excel curso avançadoExcel curso avançado
Excel curso avançadogisa_legal
 
Excel - como funciona
Excel - como funcionaExcel - como funciona
Excel - como funcionaJorge Marques
 
Microsoft Excell Aprenda
Microsoft Excell AprendaMicrosoft Excell Aprenda
Microsoft Excell AprendaPedro Kangombe
 
Programacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareProgramacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareMarcio Junior Vieira
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicMarcio Junior Vieira
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicAmbiente Livre
 
Aula 02 programação_c_alunos
Aula 02  programação_c_alunosAula 02  programação_c_alunos
Aula 02 programação_c_alunosJoice Souza
 
Curso matlab 6 especiais
Curso matlab 6 especiaisCurso matlab 6 especiais
Curso matlab 6 especiaisJosh Santos
 

Semelhante a Curso Excel VBA: Introdução à programação com macros e VBA (20)

Excel VBA: Aula 8
Excel VBA: Aula 8Excel VBA: Aula 8
Excel VBA: Aula 8
 
Aula de informatica 02
Aula de informatica 02Aula de informatica 02
Aula de informatica 02
 
Basico dovba excel_tutorial1
Basico dovba excel_tutorial1Basico dovba excel_tutorial1
Basico dovba excel_tutorial1
 
Calc
CalcCalc
Calc
 
Planilha Eletrônica BrOffice CALC
Planilha Eletrônica BrOffice CALCPlanilha Eletrônica BrOffice CALC
Planilha Eletrônica BrOffice CALC
 
Aula 5 WEB
Aula 5 WEBAula 5 WEB
Aula 5 WEB
 
Aula 5
Aula 5Aula 5
Aula 5
 
Excel curso avançado
Excel curso avançadoExcel curso avançado
Excel curso avançado
 
Excel avancado
Excel avancadoExcel avancado
Excel avancado
 
Excel avancado 2015
Excel avancado 2015Excel avancado 2015
Excel avancado 2015
 
Excel avancado
Excel avancadoExcel avancado
Excel avancado
 
Excel - como funciona
Excel - como funcionaExcel - como funciona
Excel - como funciona
 
Microsoft Excell Aprenda
Microsoft Excell AprendaMicrosoft Excell Aprenda
Microsoft Excell Aprenda
 
Programacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareProgramacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshare
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice Basic
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice Basic
 
Aula 02 programação_c_alunos
Aula 02  programação_c_alunosAula 02  programação_c_alunos
Aula 02 programação_c_alunos
 
Excel VBA: Aula 3
Excel VBA: Aula 3Excel VBA: Aula 3
Excel VBA: Aula 3
 
Curso matlab 6 especiais
Curso matlab 6 especiaisCurso matlab 6 especiais
Curso matlab 6 especiais
 
Slides Calc
Slides CalcSlides Calc
Slides Calc
 

Mais de Gabriel Costa

Metodologia de calculo de capex de upgns
Metodologia de calculo de capex de upgnsMetodologia de calculo de capex de upgns
Metodologia de calculo de capex de upgnsGabriel Costa
 
Analise economica de instalacoes de ESGN
Analise economica de instalacoes de ESGNAnalise economica de instalacoes de ESGN
Analise economica de instalacoes de ESGNGabriel Costa
 
Curso de Matlab basico
Curso de Matlab basicoCurso de Matlab basico
Curso de Matlab basicoGabriel Costa
 
Curso de Matlab avancado 1
Curso de Matlab avancado 1Curso de Matlab avancado 1
Curso de Matlab avancado 1Gabriel Costa
 
Curso de Matlab avancado 2
Curso de Matlab avancado 2Curso de Matlab avancado 2
Curso de Matlab avancado 2Gabriel Costa
 
Processamento de gas natural
Processamento de gas naturalProcessamento de gas natural
Processamento de gas naturalGabriel Costa
 
Apresentação SPEtro 17-10-2017
Apresentação SPEtro 17-10-2017Apresentação SPEtro 17-10-2017
Apresentação SPEtro 17-10-2017Gabriel Costa
 
Projeto de gasodutos
Projeto de gasodutosProjeto de gasodutos
Projeto de gasodutosGabriel Costa
 

Mais de Gabriel Costa (9)

Metodologia de calculo de capex de upgns
Metodologia de calculo de capex de upgnsMetodologia de calculo de capex de upgns
Metodologia de calculo de capex de upgns
 
Analise economica de instalacoes de ESGN
Analise economica de instalacoes de ESGNAnalise economica de instalacoes de ESGN
Analise economica de instalacoes de ESGN
 
Curso de Simulink
Curso de SimulinkCurso de Simulink
Curso de Simulink
 
Curso de Matlab basico
Curso de Matlab basicoCurso de Matlab basico
Curso de Matlab basico
 
Curso de Matlab avancado 1
Curso de Matlab avancado 1Curso de Matlab avancado 1
Curso de Matlab avancado 1
 
Curso de Matlab avancado 2
Curso de Matlab avancado 2Curso de Matlab avancado 2
Curso de Matlab avancado 2
 
Processamento de gas natural
Processamento de gas naturalProcessamento de gas natural
Processamento de gas natural
 
Apresentação SPEtro 17-10-2017
Apresentação SPEtro 17-10-2017Apresentação SPEtro 17-10-2017
Apresentação SPEtro 17-10-2017
 
Projeto de gasodutos
Projeto de gasodutosProjeto de gasodutos
Projeto de gasodutos
 

Curso Excel VBA: Introdução à programação com macros e VBA

  • 1. Excel+VBA Gabriel de Figueiredo da Costa Curso de Excel + VBA 1
  • 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 (...) (...) (...)
  • 27. 5. Formulários • Janelas em branco para inserção de botões Curso de Excel + VBA 27
  • 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