Vous êtes sur la page 1sur 28

05/01/2017

Curso VBA Excel


Imersão ao Visual
Basic for Applications
com base em
tratamento de dados
criterioso
Italo Junji Matsushita
italo_junji@yahoo.com.br

Apresentação Profissional

 Engenheiro de Controle e Automação – UFMG 2013


 CPEJr. Assessor Adm-Fin 2009/2010
 Monitor da Instrumentação no Coltec – 2011/2012
 Professor Pronatec de Eletricista de Baixa Tensão – 2011/2012
 Engenheiro de Sistemas e Soluções Chemtech SIEMENS – desde 2012
 Pós-graduado em Desenvolvimento de Aplicações Web - PUC 2016

1
05/01/2017

Aula 1

 O que é VBA?
 Arquitetura Excel
 Macros/Gravação
 Ambiente de Desenvolvimento
 Debugger
 MsgBox
 Operadores lógicos, de atribuição, de repetição

O que é VBA?

 Linguagem de Programação

 Microsoft Office

 Principal uso: tarefas repetitivas -> automatismos

2
05/01/2017

O que é VBA?
 Roda código somente dentro de uma aplicação

 Controla uma aplicação a partir de outra

 Flexível, intuitivo, rico em funcionalidade


 Limitado, baixa tipagem

Arquitetura Hierárquica Básica Excel

 Application (Excel)

 Workbook Funções (Métodos) e Propriedades


(Atributos)

 Worksheet

São considerados Objetos do


 Cells
Excel, mas VBA não é uma
linguagem de POO.
 Range -Abstração
-Encapsulamento
-Polimorfismo
-Herança

3
05/01/2017

Macros

 A gravação de macro é, pura e simplesmente, o registro


dos códigos em VBA dos comandos utilizados pelo
programa, no caso o Excel, a partir das entradas do
usuário, seja no teclado ou mouse.

 Para simples automatismos é uma “mão na roda”, mas


deve ser usada com cuidado!

 Execução de Macro não possui Ctrl+Z (Undo/Desfazer)

Macros
 Sequência de comandos e funções em VBA armazenadas
em um módulo

4
05/01/2017

Macros

 -

Macros
 Podem ser gravadas, depuradas e editadas

 Podem ser utilizadas repetidas vezes, funcionando como


um atalho

5
05/01/2017

Macros

 Grave uma macro que coloque bordas pretas em torno


de uma célula e a pinte de amarelo.

 Execute-a repetidas vezes em demais células. Adicione


um atalho para facilitar.
 Funcionou?

Macros

 Agora, grave uma macro que coloque bordas pretas em


torno de uma célula e a pinte de amarelo, SOMENTE SE
a célula estiver preenchida.

6
05/01/2017

Macros

 Troque manualmente o código da macro gravada pelo


código VBA abaixo:

Não existe “;”

Macros

 Macros gravadas podem facilitar bastante um trabalho


cotidiano, mas são apenas a “ponta do iceberg”.

 Macros gravadas ajudam quando não se conhece o


comando em VBA.

 Macros gravadas poluem o código.

 Macros gravadas não possuem “inteligência”.

7
05/01/2017

Macros

 Agora, descubra os comandos para:

 Colocar o texto da célula em Negrito, Itálico e


Sublinhado
 Adicionar nova aba
 Renomear aba
 Deletar linha inteira
 Deletar coluna inteira

Ambiente de Desenvolvimento
 “Alt + F11”

Application
Workbook (Excel)

Worksheets

8
05/01/2017

Ambiente de Desenvolvimento
 Codificamos em VBA através de procedimentos
 Estes procedimentos podem ser uma “Sub” ou “Function”
 “Sub” (vem de Sub-routine), análogo ao Void( )
 “Function”: uma “Sub” com retorno de valor
 Podemos utilizar módulos para organizar nosso código

Ambiente de Desenvolvimento

 -

9
05/01/2017

Ambiente de Desenvolvimento

 Vamos entender melhor a ideia de Workbooks,


Worksheets, Cells e Ranges.

 Propriedades Count, Name


 Comentar código ‘ (aspas simples na frente)

 Passar para linha debaixo “ _” (espaço seguido de _)

Ambiente de Desenvolvimento
 Desabilitar “Autoverificar sintaxe”
 Fim das interrupções com alertas
 Aumento de produtividade

10
05/01/2017

Declaração de Variáveis
 Dim “NomeDaVariável” as Tipo
 Ex.: Dim palavra as String

 Em VBA não é obrigatório declarar todas as variáveis,


somente aquelas usadas em parâmetros de
procedimentos.
 Não pode: começar com número, ter caracteres
especiais ou ter nome de algum tipo.

Debugger
 Para iniciar a execução de uma Sub, basta ter o cursor em
algum ponto do código e então apertar “F5” ou clicar no
“Play”.
 Para pausar a execução utilizamos breakpoints clicando na
coluna à esquerda do código, deixando uma bola vermelha.
 Para parar a execução clicamos no “Stop”.

11
05/01/2017

Debuggando
 A próxima linha que será executada estará em amarelo.
 Podemos alterar a linha que será executada arrastando a
setinha para cima ou para baixo no código. Isso é MUITO BOM!
 Podemos visualizar o conteúdo das variáveis em execução
deixando o mouse em cima delas ou adicionando um “watch”.

Debuggando
 “F8” passa para o próxima linha de código a ser
executada.
 “Shift+F8” passa para a linha abaixo a ser executada.

12
05/01/2017

MsgBox

 Pausa a execução do código


 MsgBox(“Hello World”)
 Prompt: Mensagem na Janela
 Buttons: Botões e ícones
 Title: Título da caixa
 HelpFile e Context: São utilizados juntos. Diretório .chm, ex: 71.

 VbMsgBoxResult: Tipo da variável de retorno retorno

MsgBox Buttons
Constant Description
vbOKOnly It displays a single OK button
vbOKCancel It displays two buttons OK and Cancel.

vbAbortRetryIgnore It displays three buttons Abort, Retry, and Ignore.

vbYesNoCancel It displays three buttons Yes, No, and Cancel.


vbYesNo It displays two buttons Yes and No.
vbRetryCancel It displays two buttons Retry and Cancel.
vbCritical It displays a Critical Message icon.
vbQuestion It displays a Query icon.
vbExclamation It displays a Warning Message icon.
vbInformation It displays an Information Message icon.
vbDefaultButton1 First button is treated as default.
vbDefaultButton2 Second button is treated as default.
vbDefaultButton3 Third button is treated as default.
vbDefaultButton4 Fourth button is treated as default.
This suspends the current application till the user responds to
vbApplicationModal
the message box.
This suspends all the applications till the user responds to the
vbSystemModal
message box.
vbMsgBoxHelpButton This adds a Help button to the message box.
VbMsgBoxSetForeground Ensures that message box window is foreground.
vbMsgBoxRight This sets the Text to right aligned

vbMsgBoxRtlReading This option specifies that text should appear as right-to-left.

13
05/01/2017

MsgBox Values Returned


Value Description

1 Specifies that OK button is clicked.

Specifies that Cancel button is


2
clicked.
Specifies that Abort button is
3
clicked.
Specifies that Retry button is
4
clicked.
Specifies that Ignore button is
5
clicked.

6 Specifies that Yes button is clicked.

7 Specifies that No button is clicked.

MsgBox Exemplo

 Output = MsgBox(“Are you sleepy?”, vbYesNo + vbQuestion, _


“Hello World”)

14
05/01/2017

Operador de atribuição

 Para Valores usa-se o “=“


Ex.:

 Para Referências (objetos em geral) usa-se “Set” antes


Ex.:

Sintaxe VBA

 Estruturas de repetição
 FOR

 INSERIR FIGURA EXPLICATIVA

15
05/01/2017

FOR

 -

FOR

 Codifique em VBA para obter os seguintes resultados:

 Utilize 3 estruturas FOR, uma para cada linha


 Lembre-se do Step
 Utilize variáveis se necessário

16
05/01/2017

FOR

Sintaxe VBA

 Estruturas de repetição
 WHILE
 INSERIR FIGURA EXPLICATIVA

17
05/01/2017

WHILE

 -

WHILE

 Codifique em VBA para obter os seguintes resultados:

 Utilize 3 estruturas WHILE, uma para cada linha


 Utilize variáveis se necessário

18
05/01/2017

WHILE

While-Wend

Sintaxe VBA

 Operadores Lógicos
 And (e)
 Or (ou)
 Not (não)

 Operadores de Comparação
 = (Igualdade)
 <> (Desigualdade)
 < (Menor que)
 > (Maior que)
 <= (Menor ou igual a)
 >= (Maior ou igual a)

19
05/01/2017

Sintaxe VBA

 Condicionais
 IF
 INSERIR FIGURA EXPLICATIVA

Optional

Optional

IF

 -

20
05/01/2017

IF
 Codifique em VBA para obter os seguintes resultados:

 Utilize 2 IF’s
 Utilize operador “Mod” para obter o resto da divisão, exemplo:

 Para pintar células, segue um exemplo:

IF

21
05/01/2017

Sintaxe VBA

 Condicionais
 SELECT CASE
 INSERIR FIGURA EXPLICATIVA

Optional

SELECT CASE

 -

22
05/01/2017

SELECT CASE
 Codifique em VBA para obter os seguintes resultados:

 Utilize 2 SELECT CASE

SELECT CASE

23
05/01/2017

Aula 2

 Sub
 Function
 Parâmetros Opcionais
 Parâmetros por Valor e Referência
 Funções nativas VBA
 Criação de funções textuais customizadas
 Exportação de módulos

SUB
 Por padrão são “Public”, mas pode ser “Private”
 Análogo ao “void” de outras linguagens de programação
 Chamada por “Call nome_sub(Arg1,...)”

Call é
opcional

24
05/01/2017

FUNCTION
 Por padrão são “Public”, mas pode ser “Private”
 Chamada através do nome(arg1, arg2 ...)
 Assinatura necessita de especificar o Tipo Retornado
 Retorno pela atribuição do nome da função

Parâmetros Opcionais

 Parâmetros opcionais são escritos com “Optional” na frente


 Podem ser atribuídos valores padrões

25
05/01/2017

ByRef vs ByVal
 Parâmetros passados por Valor não são alterados pela função
 Parâmetros passados por Referência são alterados pela função
 Objetos devem ser SEMPRE passados por referência
 ByRef é o padrão

SUB/FUNCTION

26
05/01/2017

Aula 3

 Importação de módulos
 Formatação de coluna de e-mails
 Geração de coluna de nomes a partir de e-mails
 Formatação de coluna numérica seguindo regras

Aula 4

 Adaptação das formatações da Aula 3 de forma genérica


 Busca criteriosa de arquivos em um diretório
 Listar arquivos de um diretório
 Abertura, salvamento e fechamento automáticos de
planilhas em batelada
 Agrupamento de dados de diferentes planilhas em uma
única formatada

27
05/01/2017

Aula 5

 Agrupamento de dados com tratamento de repetições


 Geração de Log de automatismos executados
 Preenchimento e análise de planilha condicionada a
outra
 Cálculo de indicadores a partir da massa de dados
existente

28

Vous aimerez peut-être aussi