Escolar Documentos
Profissional Documentos
Cultura Documentos
Em um total de 12 horas de curso você deverá aprender o que é o VBA, como utilizar essa
ferramenta e como automatizar os processos, mesmo sem ser um expert em programação.
Todas as aulas teremos exercícios práticos e durante todo o curso teremos exercícios mais
elaborados para serem feitos em casa.
Aula 1 - Introdução, Vocabulário, Gravando Macros
Aula 2 – Modificando Macros, Criando macros, Testando Macros, Dicas
Aula 3 – Eventos Vba, Segurança VBA, Application
Aula 4 – Revisão, Workbooks, Worksheet, Exercício 1
Aula 5 – Células e ranges, Correção Exercício 1
Aula 6 – Caixa de mensagens e Caixa de entrada parte 1
Estrutura do curso
Introdução
Vocabulário
Gravando Macros
Aula 1 - Introdução
1. O que é VBA?
O VBA é "Visual Basic for Application“, uma linguagem de programação que permite
usuários a programarem macros para executar tarefas repetitivas ou complexas
automaticamente dentro do Excel. Com o VBA do Excel você pode desenvolver pequenos
procedimentos (macros) que tornarão a sua vida profissional mais fácil e lhe permitir fazer
mais em menos tempo.
Ex: consolidação de diversos dados em uma única planilha.
Mas o VBA também é uma linguagem de programação muito poderosa com a qual você pode desenvolver
dentro do Excel programas reais que executem em poucos minutos tarefas muito complexas. Com o VBA do
Excel você pode desenvolver um programa que faça EXATAMENTE o que você precisa.
Ex: sistema de conferência de pagamento de frete.
O Ambiente do VBA
O Ambiente do VBA
O Ambiente do VBA
Aula 1 - Vocabulário
O que é uma MACRO?
Macros do Excel: É uma série de passos que se armazenam e que podem ser ativados com
alguma tecla de controle (Ctrl) mais uma letra. Por exemplo, todos os dias emprego
frequentemente em minhas células os mesmos passos: Tamanho de Fonte (Tamanho da letra),
Negrito, Fonte (Tipo de letra) e Cor de Fonte (Cor de Letra). Para não estar repetindo estes
passos, posso armazená-los numa macro e, quando executar esta macro, os passos antes
mencionados se executarão quantas vezes eu desejar. Enfim, uma macro é uma série de
instruções realizadas pelo Excel, ao invés de você.
Objetos:
Propriedades:
Método: Um método é um termo do Visual Basic para uma palavra-chave que representa
uma ação que você quer impor a um objeto.
O gravador de macros
Eu tenho desenvolvido macros por algum tempo, e uso o gravador de macro Excel
diariamente. Não para aprender qualquer coisa, mas para escrever código (palavras e
sentenças VBA) para mim. O gravador de que você pode ter e seu melhor assistente.
Armazenando uma macro gravada:
Na pasta de trabalho atual ou na pasta de trabalho pessoal.
Lembre-se que tudo que você começar a fazer a partir do momento que iniciar a gravação,
será registrado, então tente ser sucinto nas ações.(De agora em diante você não pode errar,
pois será tudo gravado (inclusive os erros)
Exercício 1 em Aula
Salvar em pasta pessoal de macros, inserir um atalho do teclado, e testar com o atalho
Cuidado...
Criando macros
Modificando Macros
Testando Macros
Dicas
Criando uma macro
Ou
Dicas:
Aula 3- Pg 115-130
Eventos VBA
Propriedades VBA
Application
Antes, vamos relembrar...
Relembrando os objetos:
Range – Célula
Workbook – Pasta do Excel
Worksheet – Aba do Excel
Window – Janela
Antes, vamos relembrar...
Workbook e Worksheets
Propriedades VBA
Application.
Você altera alguma propriedade do Excel.
Através dele, então, podemos configurar o Excel em termos de visualização, execuções e
outras funcionalidades.
CutCopy
Diálogos
Application.Dialogs(xlDialogOpen).Show
Mostra caixa de pastas
Application.Dialogs(xlDialogActiveCellFont).Show
Mostra formatação de célula
Propriedades VBA
DisplayAlerts
Habilita ou desabilita a exibição de mensagens de aviso como resposta de várias ações no
Excel. True habilita as mensagens e False as desabilita.
Propriedades VBA
Métodos VBA
Métodos VBA
Métodos Worksheets
No último método, é mais seguro, visto que se o usuário alterar o nome da aba, ainda
assim, será possível a macro rodar.
Métodos Worksheets
Propriedade Name: altera o nome da aba
Para realizar cálculos dentro de uma aba que esteja oculta, é necessário torna-la visível
primeiro e depois voltar a ocultar.
Métodos Worksheets
Mas lembre-se:
Ou
Para inserir no final de todas as abas, deve-se contar as abas com o .count
Métodos Worksheets
Métodos Workbooks
Métodos Workbooks
Aula 5
Células e Ranges
Exercício 1 para casa - Nome e Sobrenome
Células e ranges
Células e ranges
Células e ranges(pg144)
Para caixas de entradas como datas, textos ou outros tipos de respostas, temos que
declarar variáveis
Caixa de entradas
Para caixas de entradas como datas, textos ou outros tipos de respostas, temos que
declarar variáveis.
date
data
If..Then...And...End If
Quando existirem duas condições inclusivas.
Declarações
If..Then...Or...End If
Quando existirem duas condições exclusivas e uma ação.
If..Then...Else...End If
Quando há somente uma condição mas duas ações.
Declarações
If..Then..ElseIf...End If
Quando existirem mais do que uma condição vinculada cada uma a diferente ação.
Aula 9
Declarações Parte 2 (Loops)
Exercício lista de mercado/sapex
Declarações
For..Each
Quando você precisa fazer loop através de cada objeto em uma coleção, use a estrutura For Each-
Next(planilhas, abas são objetos.)
Declarações
For..Next
A declaração For...Next permite repetir uma ação um determinado número de vezes.
Quando você usa a declaração For..Next num conjunto de dados é interessante contar o número de
linhas e ter o seu contador se movendo de 1 ao número de linhas. For varContador = 1 to
UltimaLinha
Declarações
For..Next
Você pode usar um valor Step para pular alguns valores em um loop For-Next
Neste exemplo, Count começa como 0 e depois toma o valor 2, 4, 6 e assim por diante, acabando
em 18 :
Declarações
Do..Loop
A declaração Do...Loop faz maravilhosamente muito da mesma coisa que a declaração For..Next
mas você não precisa declarar um contador porque o Loop pára quando ele encontrar uma certa
condição.
Declarações
Tipos de Do:
Declarações
Exit...
FINALIZANDO AS AULAS ANTERIORES
AULA 9.2
Exit...
Tipos de Erros
PRIMEIRO TIPO: Quando se escreve incorretamente, ele pinta a linha em vermelho.
SEGUNDO TIPO: Quando tenta rodar e ele não lhe deixa iniciar a macro(Os erros que ocorrem
enquanto você tenta iniciar sua macro pode ser a falta de End Sub, de End If, uma falta de Next ou
Loop uma variável não declarada e alguns outros.)
TERCEIRO TIPO: Quando esta rodando sua macro, e ela depura um erro (Não encontra uma pasta
que pediu pra usar, ou ativar uma folha que está oculta, entre outros)
Quarto tipo: Erro estrutural, ele roda mas não faz o que era desejado.
ERROS
Corrigindo erros:
PRIMEIRO PASSO: TESTAR SEU PROGRAMA
SEGUNDO PASSO: VERIFICAR NO SEU PROGRAMA O QUE PODE ESTAR
CAUSANDO O ERRO, ou seja, qual tipo de erro é.
TERCEIRO PASSO: IDENTIFICAR SE É POSSÍVEL CORRIGIR O ERRO DE
FORMA SIMPLES, ou seja, se faltava incluir ou corrigir alguma palavra.
QUARTO PASSO: TRATAR O ERRO com “On error” ou com “if’s”.
Exemplo de erro em cx de entrada
Conseguimos trabalhar com condicionais de erros, ou seja, se a pessoa não entrar com
uma data quando deve ser uma data, faremos uma condicional “IF” e condicional On
error:
Trabalhando com Variáveis
Regras no uso de variáveis:
1. Você pode usar letras, números e alguns caracteres de pontuação, mas o primeiro caractere deve ser uma
letra.
2. Não é possível usar quaisquer espaços ou pontos no nome de uma variável.
3. O VBA não distingue entre letras maiúsculas e minúsculas.
4. Você não pode usar os seguintes caracteres no nome de uma variável: #, $, %, & ou !.
5. Os nomes de variáveis não podem ter mais de 255 caracteres. É claro que você está procurando
problemas se usar nomes de variáveis com 255 caracteres de extensão.
6. O VBA tem muitas palavras reservadas que você não pode usar em nomes de variáveis ou nomes de
procedimento. Essas incluem palavras tais como Sub, Dim, With, End, Next e For.
7. Evite usar nomes que são iguais aos usados nas abas ou objetos.
Trabalhando com Variáveis
Tipos de variáveis:
Trabalhando com Variáveis
Notas importantes:
1. É importante declarar variáveis, Declarar as suas variáveis faz o seu programa rodar mais depressa e
usar a memória com mais eficiência.
2. Geralmente, os contadores de loop são declarados como inteiros ou long;
3. Se você não declarar o tipo de dados em uma variável que usar em uma rotina VBA, o VBA usa o tipo
de dados padrão: Variant. Dados armazenados como uma variante agem como um camaleão: eles
mudam dependendo do que você fizer com eles.
4. Para impor a si mesmo a tarefa de declarar todas as variáveis que usa, inclua o seguinte como a primeira
declaração em seu módulo VBA: Option Explicit. Porque?
Imagine que você use essa seguinte variável abaixo. Nela há um erro que te levará a cálculos incorretos,
e usando declaração de variáveis, ele dará erro, o que impede erro de cálculo.
Trabalhando com Variáveis
O que é?
Uma variável é apenas um local de armazenagem, nomeado, na memória do seu computador.
Trabalhando com Constantes
O valor de uma variável pode mudar (e normalmente muda) enquanto o seu procedimento está
em execução. Por isso é que ela é chamada de variável. Às vezes, você precisa fazer referência
a um valor ou string que nunca muda. Nesse caso, você precisa de uma constante – um
elemento nomeado cujo valor não muda.
Treinando na prática
Aula 11
Sapex
Aula 12
Sapex
Aula UP – VBA +
Userforms
Userforms
Um UserForm é útil se a sua macro VBA precisar obter informações de um usuário. Por
exemplo, a sua macro pode ter algumas opções que podem ser especificadas em um
UserForm.
Através de um userform podemos fazer com que o usuário da nosa aplicação trabalhe
apenas em um ambiente personalizado, sem precisar digitar nas planilhas.
Doze controles diferentes podem ser adicionados ao userform. Eles são chamados: Label,
TextBox, ComboBox, ListBox, CheckBox, OptionButton, ToggleButton, Frame,
CommandButton, TabStrip, MultiPage, ScrollBar.
Userforms
Doze controles diferentes podem ser adicionados ao userform. Eles são chamados: Label,
TextBox, ComboBox, ListBox, CheckBox, OptionButton, ToggleButton, Frame,
CommandButton, TabStrip, MultiPage, ScrollBar.
Userforms
Mudando as opções da grade de formulário, vá em Ferramentas, Opções e Geral.
Userforms
Para carregar um formulário em sua planilha, precisamos gerar uma macro que tenha os
comandos de inicialização do userform, e devemos executar essa macro pelas formas já
vistas anteriormente (por botões de controles e eventos).
Userforms
Propriedades da Userforme:
Name- nome;
BackColor - Essa propriedade define a cor do fundo (background) do formulário;
BorderColor -Define a cor da borda do formulário;
BorderStyle - Determina o estilo da borda;
Caption - O nome que vai aparecer na faixa azul no topo do formulário;
Enabled - Ativa ou desativa o formulário. Desativar um formulário significa não
poder fazer coisa alguma com ele; portanto, tome cuidado com essa propriedade;
Font – Fonte dos textos do formulário, fontes do sistema;
ForeColor - Define a cor daquilo que será impresso no formulário;
Height – Altura do Formulário, Left – Distancia do formulário.
Userforms
Propriedades da Userforme:
MouseIcon - Define um ponteiro do mouse personalizado quando estiver sobre o formulário.
MousePointer - Você pode ter o ponteiro do mouse mudado quando estiver sobre o form com esta propriedade;
você deve escolher a opção 99 – frmMousePointerCustom.
Picture - Opta por uma figura como fundo do formulário;
PictureSizeMode - Determina a forma que a figura será disposta no formulário;
StartPosition – Posição Inicial do formulário, para default, será no centro da tela;
Top – Distancia do formulário do topo da planilha;
Width – Delimita largura do formulário;
Zoom - Aumenta ou diminui a distância de visualização dos componentes do formulário
Show - Exibe um formulário quando já carregado na memória
Userforms
Eventos de formulário:
As macros por detrás do formulário funcionam como Eventos, ou seja, só irão ser processadas quando
a pessoa realizar algum procedimento na caixinha de formulário:
Outro exemplo: Para salvar dados que a pessoa inseriu dentro do formulário:
Botão: Nome do Botão:
Caixa de listagem:
PROJETO FINAL
Faça um programa que simule os programas atualmente utilizados em caixa de
supermercados, conforme exemplo abaixo:
PROJETO FINAL
Regras:
Inserir um formulário antes deste para saber se o cliente já tem cadastro no supermercado, caso tenha, aparecer uma caixa de pesquisa de
nome, em que se retorne seu nome, endereço, telefone e e-mail. É necessário “armazenar” qual cliente é antes de iniciar a venda, será
usado seu nome e e-mail no futuro. Caso não tenha, deverá ser solicitado o cadastro ao cliente, lembre-se de armazenar em algum local,
qual cliente é.
O Total a pagar deverá ser calculado somente quando o usuário clicar no botão “Fechar Venda”.
Quando o usuário clicar no botão “Adicionar produto na lista” os dados do produto, digitados nas caixas de textos deverão ser somente
inseridos nas caixas de listas abaixo deste botão.
Ao clicar no botão “Cancelar Venda” limpe todos os campos mostrados na tela.
Ao clicar no botão “Remover UM Produto da Lista de Compra” remova somente os dados da venda do produto selecionado naquele
instante.
Ao selecionar um produto na caixa de listagem, a quantidade vendida o preço unitário o subtotal também deverão ficar selecionados.
Quanto o cursor sair da CAIXA DE TEXTO preço unitário, o programa deverá calcular o subtotal e mostrá-lo em um label conforme
mostrado na tela acima.
Adicionar o botão de “enviar nota fiscal paulista” ao e-mail do cliente. Quando clicado, deverá ser enviada uma lista dos produtos,
valores e total pago, forma de pagamento em formato pdf.
Adicione checks para selecionar formas de pagamento
EXTRA: SE CONSEGUIR, ADICIONE UMA FIGURA QUE MOSTRE EM % A CONCLUSÃO DA COMPRA EM CARTÃO
Aula extra