SlideShare uma empresa Scribd logo
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

Excel Avançado - Aulas
Excel Avançado - AulasExcel Avançado - Aulas
Excel Avançado - Aulas
Gustavo Sousa
 
Formatando textos no Word
Formatando textos no WordFormatando textos no Word
Formatando textos no Word
Lisandra Beutler
 
Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010
Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010
Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010
Joeldson Costa Damasceno
 
Excel basico
Excel basicoExcel basico
Excel basico
Carlos Melo
 
Apostila Microsoft Office Excel 2016
Apostila Microsoft Office Excel 2016Apostila Microsoft Office Excel 2016
Apostila Microsoft Office Excel 2016
Cibele Kanegae
 
Vba cadastro de clientes
Vba   cadastro de clientesVba   cadastro de clientes
Vba cadastro de clientes
Rodrigo Deiner Torres
 
Caderno de exercícios excel 2010
Caderno de exercícios excel 2010Caderno de exercícios excel 2010
Caderno de exercícios excel 2010
Luiz Alexandre Araujo Tobase
 
Exercc3adcio word
Exercc3adcio wordExercc3adcio word
Exercc3adcio word
Olga Figueira
 
Curso de Básico de Excel 2013 - Parte I
Curso de Básico de Excel  2013 - Parte ICurso de Básico de Excel  2013 - Parte I
Curso de Básico de Excel 2013 - Parte I
ABCursos OnLine
 
Aula 1 word
Aula 1 wordAula 1 word
Aula 1 word
WELDES
 
Curso de Excel 2007/2010 (Aula 01 e 02)
Curso de Excel 2007/2010 (Aula 01 e 02)Curso de Excel 2007/2010 (Aula 01 e 02)
Curso de Excel 2007/2010 (Aula 01 e 02)
Instituto Inovar
 
Informática Básica - Introdução ao Microsoft Word 2010
Informática Básica - Introdução ao Microsoft Word 2010Informática Básica - Introdução ao Microsoft Word 2010
Informática Básica - Introdução ao Microsoft Word 2010
Joeldson Costa Damasceno
 
Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016
Cibele Kanegae
 
Excel Básico - Introdução
Excel Básico - IntroduçãoExcel Básico - Introdução
Excel Básico - Introdução
Cleber Ramos
 
Informática Básica - Criação e Edição de Documentos no Microsoft Word 2010
Informática Básica - Criação e Edição de Documentos no Microsoft Word 2010Informática Básica - Criação e Edição de Documentos no Microsoft Word 2010
Informática Básica - Criação e Edição de Documentos no Microsoft Word 2010
Joeldson Costa Damasceno
 
Curso básico para elaboração de apresentações em PowerPoint 2010
Curso básico para elaboração de apresentações em PowerPoint 2010Curso básico para elaboração de apresentações em PowerPoint 2010
Curso básico para elaboração de apresentações em PowerPoint 2010
Nilton Junior
 
Excel Básico
Excel BásicoExcel Básico
Excel Básico
aprcds
 
Curso Word Basico
Curso Word BasicoCurso Word Basico
Curso Word Basico
Apoio Voluntario Partilhado
 
Word: Introdução
Word: IntroduçãoWord: Introdução
Word: Introdução
Artur Coelho
 
Curso de Macros en Excel (VBA)
Curso de Macros en Excel (VBA)Curso de Macros en Excel (VBA)
Curso de Macros en Excel (VBA)
UNASP
 

Mais procurados (20)

Excel Avançado - Aulas
Excel Avançado - AulasExcel Avançado - Aulas
Excel Avançado - Aulas
 
Formatando textos no Word
Formatando textos no WordFormatando textos no Word
Formatando textos no Word
 
Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010
Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010
Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010
 
Excel basico
Excel basicoExcel basico
Excel basico
 
Apostila Microsoft Office Excel 2016
Apostila Microsoft Office Excel 2016Apostila Microsoft Office Excel 2016
Apostila Microsoft Office Excel 2016
 
Vba cadastro de clientes
Vba   cadastro de clientesVba   cadastro de clientes
Vba cadastro de clientes
 
Caderno de exercícios excel 2010
Caderno de exercícios excel 2010Caderno de exercícios excel 2010
Caderno de exercícios excel 2010
 
Exercc3adcio word
Exercc3adcio wordExercc3adcio word
Exercc3adcio word
 
Curso de Básico de Excel 2013 - Parte I
Curso de Básico de Excel  2013 - Parte ICurso de Básico de Excel  2013 - Parte I
Curso de Básico de Excel 2013 - Parte I
 
Aula 1 word
Aula 1 wordAula 1 word
Aula 1 word
 
Curso de Excel 2007/2010 (Aula 01 e 02)
Curso de Excel 2007/2010 (Aula 01 e 02)Curso de Excel 2007/2010 (Aula 01 e 02)
Curso de Excel 2007/2010 (Aula 01 e 02)
 
Informática Básica - Introdução ao Microsoft Word 2010
Informática Básica - Introdução ao Microsoft Word 2010Informática Básica - Introdução ao Microsoft Word 2010
Informática Básica - Introdução ao Microsoft Word 2010
 
Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016
 
Excel Básico - Introdução
Excel Básico - IntroduçãoExcel Básico - Introdução
Excel Básico - Introdução
 
Informática Básica - Criação e Edição de Documentos no Microsoft Word 2010
Informática Básica - Criação e Edição de Documentos no Microsoft Word 2010Informática Básica - Criação e Edição de Documentos no Microsoft Word 2010
Informática Básica - Criação e Edição de Documentos no Microsoft Word 2010
 
Curso básico para elaboração de apresentações em PowerPoint 2010
Curso básico para elaboração de apresentações em PowerPoint 2010Curso básico para elaboração de apresentações em PowerPoint 2010
Curso básico para elaboração de apresentações em PowerPoint 2010
 
Excel Básico
Excel BásicoExcel Básico
Excel Básico
 
Curso Word Basico
Curso Word BasicoCurso Word Basico
Curso Word Basico
 
Word: Introdução
Word: IntroduçãoWord: Introdução
Word: Introdução
 
Curso de Macros en Excel (VBA)
Curso de Macros en Excel (VBA)Curso de Macros en Excel (VBA)
Curso de Macros en Excel (VBA)
 

Semelhante a Curso de Excel VBA

Excel VBA: Aula 8
Excel VBA: Aula 8Excel VBA: Aula 8
Excel VBA: Aula 8
Gustavo Zimmermann
 
Aula de informatica 02
Aula de informatica 02Aula de informatica 02
Aula de informatica 02
Nilberte
 
Basico dovba excel_tutorial1
Basico dovba excel_tutorial1Basico dovba excel_tutorial1
Basico dovba excel_tutorial1
Carlos Adriano Rosa
 
Calc
CalcCalc
Planilha Eletrônica BrOffice CALC
Planilha Eletrônica BrOffice CALCPlanilha Eletrônica BrOffice CALC
Planilha Eletrônica BrOffice CALC
eliz71
 
Aula 5 WEB
Aula 5 WEBAula 5 WEB
Aula 5 WEB
gsbq
 
Aula 5
Aula 5Aula 5
Aula 5
gsbq
 
Excel curso avançado
Excel curso avançadoExcel curso avançado
Excel curso avançado
gisa_legal
 
Excel avancado
Excel avancadoExcel avancado
Excel avancado
Fernando Barbieri
 
Excel avancado 2015
Excel avancado 2015Excel avancado 2015
Excel avancado 2015
Josimar Macedo
 
Excel avancado
Excel avancadoExcel avancado
Excel avancado
João Victor Prado
 
Apresentação sobre Excel - Conteúdo básico
Apresentação sobre Excel - Conteúdo básicoApresentação sobre Excel - Conteúdo básico
Apresentação sobre Excel - Conteúdo básico
ssuser906f55
 
Excel - como funciona
Excel - como funcionaExcel - como funciona
Excel - como funciona
Jorge Marques
 
Microsoft Excell Aprenda
Microsoft Excell AprendaMicrosoft Excell Aprenda
Microsoft Excell Aprenda
Pedro 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_slideshare
Marcio 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 Basic
Ambiente Livre
 
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
Marcio Junior Vieira
 
Aula 02 programação_c_alunos
Aula 02  programação_c_alunosAula 02  programação_c_alunos
Aula 02 programação_c_alunos
Joice Souza
 
Excel VBA: Aula 3
Excel VBA: Aula 3Excel VBA: Aula 3
Excel VBA: Aula 3
Gustavo Zimmermann
 
Curso matlab 6 especiais
Curso matlab 6 especiaisCurso matlab 6 especiais
Curso matlab 6 especiais
Josh Santos
 

Semelhante a Curso de Excel 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
 
Apresentação sobre Excel - Conteúdo básico
Apresentação sobre Excel - Conteúdo básicoApresentação sobre Excel - Conteúdo básico
Apresentação sobre Excel - Conteúdo básico
 
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
 

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 upgns
Gabriel Costa
 
Analise economica de instalacoes de ESGN
Analise economica de instalacoes de ESGNAnalise economica de instalacoes de ESGN
Analise economica de instalacoes de ESGN
Gabriel Costa
 
Curso de Simulink
Curso de SimulinkCurso de Simulink
Curso de Simulink
Gabriel Costa
 
Curso de Matlab basico
Curso de Matlab basicoCurso de Matlab basico
Curso de Matlab basico
Gabriel Costa
 
Curso de Matlab avancado 1
Curso de Matlab avancado 1Curso de Matlab avancado 1
Curso de Matlab avancado 1
Gabriel Costa
 
Curso de Matlab avancado 2
Curso de Matlab avancado 2Curso de Matlab avancado 2
Curso de Matlab avancado 2
Gabriel Costa
 
Processamento de gas natural
Processamento de gas naturalProcessamento de gas natural
Processamento de gas natural
Gabriel Costa
 
Apresentação SPEtro 17-10-2017
Apresentação SPEtro 17-10-2017Apresentação SPEtro 17-10-2017
Apresentação SPEtro 17-10-2017
Gabriel Costa
 
Projeto de gasodutos
Projeto de gasodutosProjeto de gasodutos
Projeto de gasodutos
Gabriel 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 de Excel 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