CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
2 .
......
......
......
......
......
......
......
......
......
......
......
......
......
INTRODUÇÃO
O QUE É VBA?
O VBA (Visual Basic for Applications), é uma linguagem de programação incor-
porada em todos os programas do Microsoft Office e alguns aplicativos terceiros, co-
mo AutoCAD, SolidWorks e CorelDraw, que tem como função realizar rotinas de repe-
tição através de comandos da aplicação podendo ser muito útil na automação de
tarefas. Apesar de ser útil em desenvolvimento de ferramentas dos aplicativos da fa-
mília office ele não uma ferramenta que funciona como uma aplicação única, ou se-
ja, ele depende de outro programa para funcionar.
COMO UTILIZAR VBA NO EXCEL
Para usar o VBA no Excel precisamos primeiramente habilitar a guia desenvolve-
dor, que por padrão vem desabilitada, para isso vamos seguir o seguinte passos:
1
2
1) Selecione a guia “Arquivo”;
2) Selecione a faixa de Opções;
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
3 .
......
......
......
......
......
......
......
......
......
......
......
......
......
INTRODUÇÃO
3
4
5
3) Clique na opção “Personalizar Faixa de Opções”;
4) Selecione a guia “Desenvolvedor”;
5) Clique em “OK” para ativar a faixa “Desenvolvedor”;
6) A guia “Desenvolvedor irá ser ativada no Excel.
6
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
4 .
......
......
......
......
......
......
......
......
......
......
......
......
......
INTRODUÇÃO CONHECENDO A GUIA DESENVOLVEDOR
Para iniciar vamos aprender um pouco sobre as opções que estão disponíveis na
guia desenvolvedor, principalmente na parte de código e controles que será o foco
deste curso.
1
Visual Basic: Abre o editor de códigos;
Macros: Abre caixa de seleção das macros disponíveis;
Gravar Macros: Abre a janela de seleção para iniciar uma gravação de
macros a partir das ações que o usuário fazer com o cursor;
Usar Referências Relativas: Ativa o modo de posição relativa de origem e
destino quando usar a gravação de macros;
Segurança de Macro: Abre a janela de configurações para definição dos
parâmetros de macros e a confiabilidade do projeto;
Inserir: Caixa de controle onde é possível inserir botões e controles de for-
mulários dentro da planilha;
Modo de Design: Ativa/Desativa o modo Design que possibilita a edição
de controles de formulário;
Propriedades: Abre a caixa de propriedade da planilha, podendo reno-
mear e habilitar visualizações personalizadas dos controles, aba, imagens
entre outros elementos que estiverem ativos na planilha;
Exibir Código: Abre o código do controle / Planilha ativa;
Executar Caixa de Diálogo: executa a caixa de diálogo personalizada
que estiver sendo editada na folha de diálogo.
1) Selecione a guia Desenvolvedor;
2) Explicação dos principais comandos das faixas de “Código” e “Controles”.
2
Vamos focar em algumas dos controles apresentados que são mais usuais afim
de aprofundar e cada tópico, iniciando por gravação de macros que é o primeiro
passo para que está iniciando no campo de desenvolvimento para Excel.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
5 .
......
......
......
......
......
......
......
......
......
......
......
......
......
GRAVADOR DE MACROS TRABALHO COM O GRAVADOR DE MACROS
O gravador de macros é uma das ferramentas mais utilizadas, principalmente pa-
ra que está iniciando a programação em VBA e não conhece alguns comandos que o
Excel utiliza, é uma boa forma de aprende como é realizando este tipo de configura-
ções via programação.
Para começar o uso vamos utilizar uma planilha que já tenha dados para realizar-
mos algumas gravações simples com de rotinas que pode ser feitas diretamente pela
gravação de macros sem a necessidade de edição.
1
2
2
1) Clique na guia Desenvolvedor;
2) Clique em um dos campos, ou da guia ou no
canto da página, ambos funcionam para abrir a
janela de gravação de macros;
Este atalho no canto da página é um acesso rápido de gravação de macros
que só tem no Excel, observe que o ícone é o mesmo para os 2 controles. Nos outros
aplicativos da Microsoft o mesmo foi retirado, em versões anteriores do pacote Office
esta função era disponível.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
6 .
......
......
......
......
......
......
......
......
......
......
......
......
......
GRAVADOR DE MACROS
1) Escreva um nome para a macro que
será gravada;
2) É possível atribuir um atalho para
executar a macro sempre que o usu-
ário realizar o comando pelo teclado;
3) Escolha onde deseja gravar a macro,
isso é interessante quando tem várias
planilha abertas, geralmente deixa-
se na pasta de trabalho;
4) Descrição da macro, é interessante
quando se grava muitas macros para
saber o que cada uma faz;
5) Clique em “OK” para iniciar a grava-
ção;
6) Informações preenchidas, exemplo;
1
2
3
4
5
6
7
9
11
10
8
12
7) Clique na célula “A1”;
8) Pelo teclado faça o coman-
do Ctrl+Seta para Baixo (Vá
até última célula da coluna
com dados);
9) Selecione a célula “C12”;
10) Coloque na célula “C12” a
função “=SOMA(C2:C11)”;
11) Dê um “Enter”, para selecio-
nar a célula “C13”;
12) Clique em “Parar”, para fina-
lizar a gravação.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
7 .
......
......
......
......
......
......
......
......
......
......
......
......
......
GRAVADOR DE MACROS Vamos verificar como ficou a nossa macro gravada para analisar como o Excel
entende um gravação de forma geral. A 3 formas possíveis de verificar o código que foi
gravado, 2 pela aba “Desenvolvedor” e uma por atalho do teclado. Vamos apresentar
as 3 formas inicialmente para conhecimento da forma mais fácil para cada usuário.
Primeiro o atalho do teclado para abrir o editor de códigos utiliza-se o comando
do teclado “Ctrl+F11”.
4
5
1) Clique na aba “Desenvolvedor;
2) Selecione o comando “Visual
Basic”, para abrir o editor de
códigos, após vá par a etapa
6;
3) Clique no comando “Macros”
para abrir a caixa de diálogos
das macros gravadas;
4) Clique sobre a macro gravada;
5) Clique sobre o botão Editar;
6) Editor de códigos com a macro
gravada.
2
3 1
6
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
8 .
......
......
......
......
......
......
......
......
......
......
......
......
......
GRAVADOR DE MACROS Vamos conhecer o depurador de códigos para depois analisar como o Excel re-
alizou a gravação e o que significa da linha gravada;
1) Botões de controle e depuração de
código;
2) Área de Objetos, Pasta de Trabalho;
Planilhas, Módulos e Classes;
3) Área de escrita do código de progra-
mação;
4) Propriedades, delimitado valores, no-
mes tamanho fonte, etc;
2 3
4
1
Vamos analisar um pouco o código que realizando através do gravador de
macros para entender o que ele está fazendo.
1
1) Ao iniciar uma gravação o Excel sempre abre uma “Sub”, que representa uma ro-
tina que vai executar, passando linha por linha até chegar ao final. Observe que
após o “Sub” tempo o nome que demos para macro “SomarTudo” e logo em se-
guida tempo a abertura e fechamento de parênteses ”()”, é necessário abrir e fe-
char parênteses, pois indica que é uma rotina, caso fosse feito manualmente e es-
tivesse sem os mesmo ocorreria um erro e o excel não iria executar a rotina;
Observe que as seguintes linha tem um apóstrofo (’) e depois está o nome da macro
e a descrição que foi realizada no início da gravação da macro, este apostrofo (’),
significa que está linha não será lida pelo Excel, deixando a mesmo como um co-
mentário dentro do código de programação, muito últil para rotinas complexa e para
manutenção de códigos;
3) Função “Selection”, verifica a célula que está
ativa, a função “End(xlDown)”, faz o Excel ir até a última linha da coluna atual com
dados, e após utiliza o comando “Select”, para selecionar a célula;
3
2) Função “Range”, ela é responsável em apresentar
a posição do cursor do Excel, neste caso estamos se-
lecionando a célula “A1”, como o comando “Select”; 2
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
9 .
......
......
......
......
......
......
......
......
......
......
......
......
......
GRAVADOR DE MACROS
4 4) Função para selecionar a célula (“C12”);
5
5) Aqui temos uma formula sendo colocada na célula ativa, usando o comando
“ActiveCell” (Célula Ativa) e “FormulaR1C1” (Formula usando de paramentros
de Linha (R) e Coluna (C); como a fórmula vai se escrita é necessário que a
mesma esteja dentro de “ “ pois o VBA não ente funções matemática sem de-
claração de objetos, assunto que abordaremos a frente.
Após temos a Função de Soma onde “Sum” significa “Soma”, lembrando que to-
dos os comandos em macros e em VBA são em inglês, “(R[-10]C”, “R”significa Li-
nha (Row) “[-10]” significa que a soma deve iniciar a em 10 linha a menos da li-
nha atual, ou seja na linha 2, “C” representa que é na mesma coluna, se houvesse
algum número dentro de colchetes aumentaria ou diminuiria o número de colu-
nas, no geral a função representa a função (“=Soma(C2:C11)”);
6 6) Seleciona a célula “C13”) e finaliza a macro;
7
7) Temos o código com comentários da função de cada linha;
Vamos agora ver como testar o código gravado, podemos fazer 2 formas um
pelo próprio editor de código e outro pelo Excel, vamos primeiro aprender a usar pelo
Excel e com código mais complexo vamos usar o próprio depurar;
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
10
GRAVADOR DE MACROS
1
2 3
4 5
1) Primeiro, clique na célula “C12” e apague a fórmula de soma;
2) Clique na guia “Desenvolvedor”;
3) Clique na comando “Macros”;
4) Selecione a macro “SomarTudo”;
5) Clique em executar.
Assim como realizamos
esta pequena gravação é
possível realizar gravação pa-
ra qualquer ação que é reali-
zada no Excel desde a mu-
dar a fonte, cor e formata-
ção, até funções e gráficos.
Na próxima lição vamos aprender a editar as macros gravadas e conhecer um
pouco sobre os comandos para desenvolver macros sem gravação.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
11
EDITANDO MACROS EDITANDO MACROS GRAVADAS
Realizar rotinas com gravador de macros realmente ajuda muito no desenvolvi-
mento, mas quando os passos para executar uma ações é um pouco maior o grava-
dor de macro pode não retornar o melhor resultado, sendo que o mesmo grava cada
ação enquanto o gravador estiver ativo desde um clique no mouse até um edição fei-
ta errada ou clique desnecessário para atingir o resultado, vamos chamar isso de polui-
ção do código, e a edição tem por objetivo limpar este lixo e deixa somente o que é
necessário para executar o código mais rápido e sem etapas desnecessárias.
1
2
4
3 1) Clique no gravador para
inserir uma nova macro;
2) Clique em “OK” para iniciar
a gravação;
3) Selecione a giua “Pagina
Inicial;
4) Selecione os dados da li-
nha A1:D4 e escolha uma
cor;
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
12
EDITANDO MACROS
5
7
6
5) Selecione a célula D20;
6) Insira a formula de soma de D2:D19;
7) Clique para encerrar a gravação.
Vamos abrir o editor de código para ver o código gerado e começarmos a ajusta-lo.
Observe que a algumas funções e passos são desnecessários para executar es-
tas gravação então vamos otimiza-los deixando de forma, mais simples conforme a
próxima imagem.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
13
EDITANDO MACROS
1
2
1) Macro gravada com destaque em amarelo do que não é necessário para rodar
a macro;
2) Macro editada com somente o que é possível para executar a macro;
O objetivo da macro gravada é pintar a linha titulo e após inserir a formula de
soma na célula especifica, entendendo isso vendo que só precisamos da informação
da região a ser pintada, a cor necessária e o local onde a função será inserida, va-
mos entender como a macro editada faz a mesma coisa que a gravação.
1
2
1) Executar a seguinte função, primeiro seleciona a região a ser pintando, após na
executa o comando “with” utilizado para chamar propriedade de célula poden-
do executar diversas formatações de um mesmo local sem precisar ser setado;
2) Executa o mesma função que da primeira imagem mais escrito de forma mais
suncinta, pois o objetivo é somente pintar de fundo as células, isso que o comna-
do faz, apresenta a células que será pintados (RANGE(“A1:D1”)), e realiza a pin-
tura do fundo da célula (.Interior.Color=65535).
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
14
EDITANDO MACROS
1
2
1) Aqui a macro seleciona a célula deseja e utiliza o comando que coloca a fun-
ção soma dentro da célula ativa, e após inserir seleciona a célula abaixo;
2) Já na edição da macro é setada a célula inserindo a função dentro da mesma
sem precisam de ficar selecionando.
Este é um exemplo de edição de macros onde se analisarmos como a grava-
ção é feita para conhecer os comandos podemos analisar o que realmente é neces-
sário deixando a execução do código mais rápida do que se fosse feita somente
com o gravador de macros, já que o gravador utiliza cada ação que o usuário faz
como uma etapa a ser executada.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
15
ATRIBUIR MACROS A UM BOTÃO COLOCANDO MACROS EM ELEMENTOS
Agora vamos aprender a colocar macros em elementos mais simples que fica
rápido a sua execução, sem a necessidade de ir toda a vez no editor de macros para
executa-la. É possível atribuir as macros gravadas a elementos gráficos que funcionam
como um link que ao clicar realiza a tarefa programada.
1
2
3
4
1) Selecione a guia “Inserir’”;
2) Clique em Formas;
3) Selecione a forma que deseja;
4) Selecione a forma inserida e clique com
o botão direito do mouse sobre a mesma
e selecione a opção “Editar Texto”;
5) Digite o nome para aparecer na forma;
5 6
7
8
9
6) Selecione a primeira linha;
7) Clique em Cor de Preenchimento;
8) Selecione “Sem Preenchimento;
9) Clique na célula D20 e apague os
dados da mesma.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
16
ATRIBUIR MACROS A UM BOTÃO
10
11
12
13
14
10)Clique com botão direito sobre o elemento gráfico adicionado;
11) Selecione a opção “Atribuir macro...”
12)Caixa de Atribuir macro é aberta;
13)Selecione a macro “EdicaoMacro2”;
14)Clique em “OK”
Com isso já temos nossa macro atribuída a um elemento gráfico onde podemos
testar clicando sobre o mesmo para verificar se está funcionando.
1) Clique no botão inse-
rido;
2) O resultado será a for-
matação e a soma
realizado anterior-
mente conforme a
gravação da macro.
1 2
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
17
FORMULÁRIOS, CONTROLES E FUNÇÕES FORMULÁRIOS
Vamos imaginar que temos uma planilha que não queremos quem for alimentar
os dados tenha acesso a mesma, por conta de formulas e outras informações que a
pessoa não precisa ter acesso, uma das formas de fazer que a mesma preencha as in-
formações sem ter que ir diretamente é a utilização de formulários podendo fazer toda
a programação de cadastro no mesmo afim de facilitar o cadastro e edição de infor-
mações.
06 07
02
03
01
1) Crie uma planilha com os campos mostrados na imagem;
2) Clique na guia “Desenvolvedor”;
3) Clique em Visual Basic;
04
05
08
09
4) Clique no menu para inserir;
5) Selecione “Userform”;
6) Na caixa de Ferramentas, sele-
cione “Caixa de Texto”;
7) Redimensione e posicione a
caixa de texto da forma que
deseja;
8) Na caixa de Ferramenta clique em Rótulo para inserir;
9) Posicione acima da caixa de texto inserida, colocando o nome de
“Código”;
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
18
FORMULÁRIOS, CONTROLES E FUNÇÕES
01
02
03
1) Volte para Excel e Clique para inserir
uma nova aba;
2) Renomeie a aba para “Dados”;
3) Insira os dados dos Estados para buscar
depois no formulário.
A vamos voltar para Visual Basic para continuar a construção dos elementos
de nosso formulário.
02
03
01
1) Copie e cole a caixa de texto e ro-
tulo para quantidade de elemento
que necessitamos para preencher a
tabela;
2) Clique na Caixa de Ferramenta em
“Caixa de Combinação”;
3) Insira a caixa de combinação abai-
xo do rótulo de UF;
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
19
FORMULÁRIOS, CONTROLES E FUNÇÕES
PROPRIEDADE DOS OBJETOS
As propriedade dos controles é algo importante o que facilita na hora de atribuir
o código e saber qual elemento você está trabalhando por padrão o Visual Basic já
dá um nome ordenado para os controles que são criados, mas vamos atribuir nomes
que nos facilite a forma de identificação, para isso usaremos a barra de propriedades.
01
02
1) Na caixa de ferramentas
selecione “botão”;
2) Insira o botão e renomeie
colocando em alguma
posição no formulário;
03
04
3) Copie e Cole 5 vezes o botão;
4) Redimensione, posicione e renomeie os valores dentro de cada botão;
INSERINDO CONTROLE DE FORMULÁRIO
Até o momento inserimos os campos a serem alimentados para planilha, mas
não realizamos nenhuma programação. Vamos criar agora os botões responsáveis por
incluir, excluir e navegar entre os registros. O formulário ficará da mesma forma que
qualquer aplicativo que temos de cadastro de informações.
01
02
1) Clique dentro do formulário em uma parte que não tenha controle;
2) A guia de Propriedade muda para as informações pertinentes ao controle que tiver selecionado;
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
20
FORMULÁRIOS, CONTROLES E FUNÇÕES
03
04
05
3) Altere a propriedade “Name” para frmCadastro;
4) Altere a propriedade “Caption” para “Cadastro | Cliente”
5) Observe que ao alterar no passo anterior automaticamente o título do formulário foi
atualizado;
05
06
07
08
5) Clique na caixa de texto do campo “Código”;
6) Vá em Propriedade (Name) e renomeei para “txtCodigo”, esta função altera o no-
me original do controle para um nome que o usuário definir;
7) Em “BackColor” altere para para &H8000000F&, esta função muda a cor de fundo
do controle, neste caso estamos alterando de “branco” para “cinza”;
8) Em “Enabled” altere de “True” para “False”, esta função e responsável em deixar o
campo editável, ou seja, ao executar o formulário este campo estará visível mas
não será possível editar a informação contida no mesmo;
09
10
9) Clique sobre os outros controles;
10) Renomeie todos conforme sua escolha;
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
21
FORMULÁRIOS, CONTROLES E FUNÇÕES
01
02 1) Selecione o dados da planilha que obtém as informações
das siglas dos estados;
2) Altere o nome para “UF” para criar uma região nomeada;
03
04
3) Selecione o controle “UF”;
4) Altera a Propriedade “RowSource” para o nome do campo nomeado criado “UF”,
esta propriedade apresenta a região da planilha que ira aparece na caixa de sele-
ção do formulário;
FUNÇÕES EM VBA
Antes de continuar a desenvolver o formulário, precisamos compreender como
fazemos funções e como ela se comporta no ambiente de desenvolvimento, desta for-
ma vamos construir 3 funções, 1 para inserir e excluir, 1 para movimentar entre os regis-
tros, outra para linkar os campos do formulário com os campos da planilha.
As funções geralmente são atributos que são utilizados quando se repete a mes-
ma estrutura em várias partes do código, desta forma basta chama-la colocando os
campos de parâmetros sem a necessidade de reescrevê-la toda a vez que a mesma
aparecer, e ainda facilita a manutenção dos códigos caso necessário, pois editando
a função ao salvar irá automaticamente mudar para todos os locais que a mesma
aparecer.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
22
FORMULÁRIOS, CONTROLES E FUNÇÕES
01
02
1) Clique para selecionar um novo
objeto;
2) Selecione “Módulo” para iniciar
a criação de uma função;
3) Selecione o módulo criado;
4) Renomeie para “fncRegistro”
5) Insira os parâmetros da função;
03
04
05
Vamos entender como vai a função criada irá funcionar e o que representa ca-
da comando utilizado.
01 02 03 04 05
1) Toda função deve ter uma chamada “Function” que identifica que é uma função
que pode ser utilizada pelo código, seguida de um nome que deve ser sempre sem
espaço entre as palavras, uma dica, procure utilizar nome que identificam o que a
função irá fazer para facilitar o entendimento de quando a função for chamada
dentro de outra parte do código. Após o nome a funções de ter a abertura e fe-
chamento dos parênteses “( )” que podem ou não ter parâmetros delimitadores;
2) “Aba” é nome do parâmetro que foi dado que tem como delimitador “Worksheet”,
isso significa que o valor que for para identificar o campo aba deve ser uma aba
da planilha, caso não seja a função não funcionará;
3) “Linha” e “Coluna” as o número da célula que estiver o registro procurado, ou seja,
o número da linha e da coluna, lembrando que o Excel entende que a célula A1
como Linha=1 e Coluna=1;
4) “Controle” é o campo do formulário que vamos linkar com a planilha;
5) “Opção” é se faremos a conexão da planilha para o formulário ou do formulário
para planilha.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
23
FORMULÁRIOS, CONTROLES E FUNÇÕES
06
6) “Select Case” é uma função responsável de definir uma
determinada rotina caso o item seja selecionado, por
exemplo podemos ter 2 cores, mais 1 de cada vez, ca-
da cor tem um código caso este código seja escolhido
é definido a cor do código selecionado, o “Select Case”
funciona desta forma, onde ao escolher a opção é defi-
nida o que será realizado.
7) Case 1 e 2 são as opções, na primeira opção temos a função buscando dados do
formulário e inserindo na planilha, na segunda o inverso, pegando da planilha e
apresentando no formulário;
Vamos entender o que é cada elemento.
“Aba” é o nome da planilha que está os dodos;
.”Cells” é a propriedade para identificar o local de onde os dados estão sendo
chamados, a propriedade “Cells” trabalha com parâmetros numéricos de linha e
coluna, “.value” identifica que estamos buscando o valor que obtém na célula;
“Controle.Value” identifica o campo do formulário que estamos atribuído o valor.
07
08
8) “End Select” finaliza a o “Select Case”, ou seja após
definir qual “Case” vai ser usado é preciso finalizar
para que posso continuar a execução do código;
“End Function” fecha a função saindo da mesma, encer-
ra a função.
9) Função finalizada com comentários.
09
Este é um exemplo de criação de função todas funções são criadas pratica-
mente o critério de parametrização e depois o código lógico que deseja, de acordo
com necessidade, vamos inserir uma outra função de movimentação entre os regis-
tros antes de voltar para o formulário.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
24
FORMULÁRIOS, CONTROLES E FUNÇÕES
1) Código da função de movimentação comentado;
01
Vamos explorar cada parte ainda não conhecida da função escrita acima pa-
ra entendermos o que está sendo realizado pela função “Movimentação”.
02 2) Temos aqui a declaração das variáveis que não está
identificadas na planilha, elas são definidas por outros
parâmetros por isso precisamos declarar para compa-
rar os valores em outra parte da função;
03
3) Aqui estamos setando o valor da última linha com dados, a variável “Aba.Range
(“A1048576”)” seta que a busca deve ser iniciada na última linha, lembrando que
o Excel desde a versão 2007 tem como limite 1048576 linhas, por isso estamos se-
tando para iniciar na última linha e buscar a primeira linha com dados verificando
debaixo para cima.
“.End(xlUp)” responsável por ir para próxima linha com dados, esta função faz o mes-
mo se pelo atalho do teclado apertasse as teclas “Ctrl+Seta para Cima”;
“.Row” identifica que o valor numérico que estamos buscando é o número da linha.
04
4) “Aba.Activate” ativa a planilha que for definida pela chamada da função, esta
função poderia ser feita chamando “Aba.Select”, mas sempre que possível evite
utilizar o comando “.Select” quando se tem um grande volume de dados e sem-
pre utiliza o comando “.select” pode tornar a macro lenta, tente sempre usar o
“.activate” e só use o “.select” caso realmente seja necessário que o cursor pare
no determinado local.
“ActiveCell.Row” verifica qual é a linha da célula que está ativada / selecionada;
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
25
FORMULÁRIOS, CONTROLES E FUNÇÕES
05
5) Seleciona o primeiro valor com dados da lista,
neste caso foi definido que será a linha 2 e
coluna 1, ou seja, a célula “A2”;
Observe que aqui foi utilizado o comando
“.select”, pois desejamos que o cursor pare es-
pecificamente na célula para obter o valor que
estiver armazenado no mesmo.
06
6) Apartir do valor já definido da célula ativa, aqui precisamos selecionar a célula
anterior, então voltamos uma célula, temos um fator de verificação, com a função
“if”
A função “if” significa “se” é muito utilizado em avaliações de opções em programa-
ção, ela avalia se o valor é verdadeiro se for continua a execução senão pula para
próxima etapa caso tenha, no nosso caso estamos verificando se a célula ativa é
maior que 2 pois a linha 2 é nossa primeira linha com dados então temos que restrin-
gir paa parar nela a execução.
“then” significa “então”, ou seja caso seja verdadeiro continuei com a execução;
“End If” significa “Fim do Se”, que finaliza o bloco de verificação;
Temos mais um parâmetro para o bloco “If” chamado de “Else” que significa
“Senão”, que pode ou não ser utilizada, caso tivesse sido utilizado ficaria da seguinte
forma:
If CelulaAtiva-1 >2 then
Aba.Cells(CelulaAtiva-1,1).Select
Else
....
End If
Substituindo os “...” por código lógico de execução.
07
7) Similar o tópico anterior só que a
avaliação é para não deixar o
valor ser maior que o último valor
com dado.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
26
FORMULÁRIOS, CONTROLES E FUNÇÕES
08
8) Nesta opção estamos selecionando o últi-
mo valor com dados.
01
02
1) Selecione a árvore do projeto a aba “Cadastro”;
2) Vá na parte de propriedades e altere a Propriedade (Name) para
“PlanCadastro”;
Vamos voltar para alterar o nome da aba pela propriedade e chamar as fun-
ções dentro do formulário.
03
3) Clique 2 vezes no formulário de Cadastro
para exibi-lo;
05
04
06
4) Selecione o botão “Primeiro” e clique com botão di-
reito do mouse;
5) Clique sobre a opção “Exibir Código”
6) Digite o código na imagem.
07 7) “Call” é utilizando para chamar uma função (Function) ou um “sub”,
neste caso estamos chamando a função que criamos anteriormen-
te; “[PlanCadastro]” é o nome da aba como os dados, e o número
1 identifica qual opção do “select Case” estamos querendo excetu-
ar, neste caso queremos que selecione o primeiro dado da tabela
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
27
FORMULÁRIOS, CONTROLES E FUNÇÕES Vamos criar um “sub” que traz os valores para os seus respectivos controles e de-
pois vamos transferir para cada botão.
01
02
03
04
1) Crie um Novo “Sub Private”, sub private é um rotina privada, ou seja ela não pode ser
chamada fora do modulo original, como uma função que não está privada.
2) Coloque os argumentos para busca da célula atual;
3) Chame a função Para definir os valores do registros, perceba que ao abrir os Parênteses o
VBA já mostra todos os argumentos da função que criamos anteriormente;
4) Insira os parâmetros para cada elemento da seguinte forma:
Aba= Aba (Vai ser definida em outra função)
Linha= CelulaAtiva;
Coluna= Nº da coluna que dado requerido, no nosso exemplo 1, pois estamos buscando a
coluna “Código”
Controle= Nome do Controle do formulário, no exemplo estamos usando [txtCodigo]
Opção=Opção (Será definido em outra Função)
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
28
FORMULÁRIOS, CONTROLES E FUNÇÕES
5) Replique a função para todos os campos;
6) Chame a função “ValorCampos” dentro da ação do botão chamado a opção
2, onde faz link da da planilha com o controle, repita o processo para todos os
boões de movimentação.
06
07
7) Códigos incluídos em cada botão;
05
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
29
FORMULÁRIOS, CONTROLES E FUNÇÕES
01
1) Crie um novo botão e
renomeie como novo;
Vamos agora escrever o código que altera e inseri informações novas na plani-
lha. Começando pela Cadastro de nova informação.
02
03
2) Clique 2 vezes no módulo “fncRegistro” para exibir as funções;
3) Na função “Movimentacao” insirar um novo Case, para incluir quando for um item novo,
função vai levar o cursor para primeira linha em branco;
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
30
FORMULÁRIOS, CONTROLES E FUNÇÕES
4) Clique com o botão direito do mouse sobre o
botão “Novo”;
5) Clique em “Exibir código”;
05
04
06
6) Coloque a chama de movimentação no botão “Novo” e
volte para o formulário.
07
08
7) Altere o nome do botão de “Incluir” para “Incluir/
Alterar” e clique com botão direito do mouse sobre o
botão;
8) Clique em “Exibir código.
09
9) Digite o código da chamada da função para colocar o valor dos controles na planilha ao
cli-
10
11
10) Volte para o formulário e clique com botão direito do
mouse sobre o botão “Excluir”;
11) Selecione a opção “Exibir código”;
12
12) Digite o código para excluir a linha com dados;
Aqui temos uma funções que ainda não vimos vamos explorar passo a passo
13 13) Aqui estamos atribuindo a aba que está os dados que deseja-
mos excluir;
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
31
FORMULÁRIOS, CONTROLES E FUNÇÕES
14
14) Função tem como critério selecionar Linhas podendo ser 1 ou mais, como querendo só a
linha ativa usamos o comando “ActiveCell.Row” que traz o número na linha atual, tendo
que ser separado pelo símbolo “&” que significa em VBA concatenação de valores, va-
mos imaginar que a linha a ser exclída seja a 10, então o código estaria lendo da seguin-
te forma: “.Rows(“11:11”)”, sempre que colocamos valore entre aspas no VBA ele entende
como texto, como o valor deve ser setado, deixamos ele fora das aspas e somente os va-
lores textuais que deixamos entre aspas.
15 15) Deleta a linha selecionada;
Agora temos o formulários com todas as funções básicas prontas. Vamos ver co-
mo testar/Depurar o formulário.
DEPURANDO CÓDIGOS
A depuração é uma forma para avaliarmos se o código escrito está correto e se
nenhum erro ira ocorre quando o “programa” estiver rodando ai conseguimos avaliar
os pontos de erros na programação.
01
1) Vamos fazer o primeiro teste utilizando o formulário, para isso acima do formulário tem
um “play”, que significa “Executar”, clique para ver o que acontece;
02
2) Veja que o formulário entra em modo de execução, teste inserir algum dado nos cam-
pos para ver o que aparece.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
32
FORMULÁRIOS, CONTROLES E FUNÇÕES
Vamos conhecer um pouco dos comandos que temos na barra de tarefas editor
de códigos.
Volta para Excel
Cria módulos, formulários e módulos de classe
Salva o projeto
Recorta , Copiar e Colar
Desfazer e Refazer
Executar, Pausar e Parar o código
Modo de Criação do código
Explorer do Projeto: apresenta os objetos, formulários e módulos
Propriedades: apresenta a janela de propriedade do controle ativo
Pesquisar Objetos: Elementos que podem ser utilizados no código
Caixa de Ferramentas: Apresenta os componentes que podem ser usadas em
construção de formulários
Ajuda do VBA
Linha e Coluna ativa do código
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
33
VARIÁVEIS E ESTRUTURAS O QUE É VARIÁVEIS
Variáveis são objetos que o programador define que são pré-determinado um
tipo de dados especifico, por conta de alguma situação especifica, caso não saiba
qual tipo de dado vai ser preenchido o VBA permite deixa o item sem a especificação
do tipo de variável. Temos vários tipos de variáveis que podem ser atribuídas a objetos
ou para fim de cálculo e comparações.
Toda variável deve ser chamada dentro bloco da função ou da rotina e pode
esta em qualquer parte do código ou seja não precisa ser chamada no início.
Exemplo:
01
02
04
03
05
1) Selecione a aba “Desenvolvedor;
2) Clique em “Visual Basic” para abrir o editor de códigos;
3) Clique em opções de objetos;
4) Selecione “Módulo”;
5) Digite o código.
Temos diversos tipos de variaveis que podem ser utilizadas de acordo com tipo
de rotina que estiver sendo realizada, vamos apresentar algumas:
• Integer : armazena valores como números de 16 bits (2 bytes) com valo limite de –
32.768 a 32.767;
• Long: é uma variável do tipo “integer” só que armazena valores numéricos de 32
bits (4 byts) no intervalo de –2.142.483.648 a 2.147.483.647;
• String: é utilizado para caracteres de texto, dados que não é efetuado calculo,
quando atribuído esta variável o vba entende que o valor será um texto;
• Double: utilizada para número principalmente para cálculos que resultados podem
vir até casas decimais, já que o “integer” e “long” não aceitam casas decimais;
• Date: armazena valores de datas e horas;
• Variant: é uma variável usada quando não declaramos o tipo do dado, desta for-
ma ele aceita todos os tipos de dados. Este tipo de variável pode trabalhar com
grande volume de dados.
Esses são os principais e mais usados tipos de variáveis existem outros que são utilizados
em casos específicos.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
34
VARIÁVEIS E ESTRUTURAS ESTRUTURAS DE REPETIÇÃO
Esta é uma condição de busca ou verificação que pode ser feita de diversas for-
mas pelo vba, vai do programador escolher a melhor maneira e aplicar ao seu código.
Vamos conhecer algumas das estruturas:
1) Aqui temos uma estrutura utilizando o co-
mando “Do While”, que significa,
“Enquanto”. Nesta função ira executar um
loop, enquanto o número da linha for me-
nor ou igual a 10, alterado o valor da linha
da coluna 1 para “OK”;
O comando “Loop” fecha a sintaxe do coman-
do fazendo que o mesmo continue repetido
até a condição seja verdadeira.
01
02
2) Aqui temos um versão do
“Do” inversa do que utiliza-
mos no exemplo anterior,
veja que a condição
“while” está junto ao “loop”
e a escrita do comando foi
invertida, ou seja, aqui esta-
mos testando do fim para
inicio.
Aqui temos uma estrutu-
ra utilizando o comando
3) Neste comando tempo a con-
dição “Do Until” que é literal-
mente “Faça até que a linha
tenha valor maior que 10”, ou
seja no comando while sempre
verificava se o valor é menor
que 10 aqui o processo de veri-
fica é inverso; fazendo o loop
até o valor chegar a 11.
03
4) Aqui faz o mesmo que o comando anteri-
or só que busca do maior para menor; 04
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
35
VARIÁVEIS E ESTRUTURAS
05
5) Aqui temos o comando for que um dos
mais utilizados, aqui temos o parâmetro
“1 to 10” a sintaxe “to” significa o “de”
neste caso, ou seja ira variar da linha 1
até linha 10.
6) Aqui temos um for com incremento;
“Incremento é quando queremos
que ele verifique uma somente valo-
res a cada 1 ou 2 linha ou outro va-
lor. No exemplos estamos utilizando
o incremento (“step”) de 2, ou seja a
cada 2 passagem e soma 2.
Então neste exemplo a primeira linha
será a linha 1 e na próxima passagem
será a linha 3 e assim por diante.
06
07
7) Aqui temos uma condição bastante interessante do
VBA que é possibilidade de utilizar condição em
matrizes e não somente em vetores.
Primeiro precisamos declarar as condições que são:
“célula” que é a posição que o curso irá passar a cada
laço;
“Intervalo” é nossa matriz ou o conjunto de dados a ser
avaliado, no exemplo foi escolhido “A1:B15”
Neste caso especifico o for é realizado até finalizar todo
o conjunto de dados.
ESTRUTURAS DE DECISÃO
Agora vamos falar um pouco de estruturas de decisão que avaliam se um condi-
ção é verdadeira para continuar a execução do código.
01
1) Um dos comandos mais utilizado para
decisão de situações em programação é
o ‘if” ele a mesma função “Se” que utili-
zando no excel, aqui usando via código.
“IF”= representa o comando se;
“THEN” = faça;
“ELSE” = senão;
“END IF”= fim da instrução.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
36
VARIÁVEIS E ESTRUTURAS
Uma dos comando que podem auxiliar muito nas estruturas de decisão são os
operadores relacionais e os operadores lógicos, que precisam ser bem conhecido pelo
programador, vejamos os operadores que temos no VBA.
OPERADOR COMANDO SIGNIFICADO
Relacional = Igual a
Relacional <> Diferente
Relacional >= Maior ou Igual
Relacional > Maior
Relacional < Menor
Relacional <= Menor ou Igual
Lógico OR Ou
Lógico AND E
Lógico NOT Negação
Lógico NULL Nulo
Lógico Empty Vazio
02 2) Select Case é um outro exemplo de estrutura
de decisão onde temos uma variável com va-
lor que é verificada de acordo com o “Case”,
caso, ele entra na função correta a ser execu-
tada, caso nenhuma seja ele sai do comando,
esta função usamos no exemplo da constru-
ção de formulário.
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
37
PLANILHA E PASTA DE TRABALHO EVENTOS DE PASTA DE TRABALHO E PLANILHAS
O VBA possibilita realizar rotinas que interagem diretamente por ações que é rea-
lizada dentro da planilha, ou seja, ao fazer alguma ação que que está programada
ele irá executar uma função. Vamos apresentar somente alguns das possibilidades que
podemos ter neste tipo de trabalho.
01
02
03
04
05
06
07
1) Selecione a aba “Desenvolvedor”;
2) Clique no comando “Exibir Código”
3) Selecione na combox “(Geral”);
4) Clique em “Worksheet”;
5) Ira ser introduzido automaticamente um comando “Worksheet_SelectionChange”, altere clicando
em “SelectChange”
6) Selecione o comando “Activate”
7) Digite o comando;
8) Resultado do comando;
Este função básica será realizada toda a vez que ativarmos ou selecionarmos a “Planilha 1”, emitindo
a mensagem;
Todos os comando que aparecem no passo 5 e 6 são opções que temos de rotinas a partir de alguma
ação das planilhas, seja ao alterar célcula, ao calcular, ao inserir um tabela dinâmico, clicar 2 vezes
na céclula e ao atualizar, partir desse pode-se ativa funções que dentro deste comandos.
08
CU
RSO
DE V
BA
PA
RA
EX
CEL
Pági
na
38
PLANILHA E PASTA DE TRABALHO
01
02
03
04
1) Clique 2 vezes sobre “EstaPastaDeTrabalho;
2) Selecione “Workbook”;
3) Escolha a opção “Open”
4) Digite o código.
A grande diferença aqui que estamos executando operações
que vão impactar do a pasta de trabalho, no Worksheet, só é
executado na aba que estiver ativa;
No nosso exemplo foi executado um comando de espera de 5
segundos ao abrir a planilha.
Pode-se fazer vários comando como pode ser visto no passo 3
que nos mostra todas as possibilidade para realizar chamadas
de acordo com o parâmetro desejado.