Você está na página 1de 112

EXCEL COM VBA – Autoria (Família Carielo)

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
1
EXCEL COM VBA – Autoria (Família Carielo)

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
2
EXCEL COM VBA – Autoria (Família Carielo)

Apresentação – VBA-Office

Todo o pacote Microsoft office foi escrito em C++, mas também existe uma linguagem de programação
criada pela Microsoft, a linguagem Visual Basic for Applications(VBA), que podemos usar para programar
dentro dos aplicativos do Office.

Por que usaríamos uma linguagem de programação


dentro do Office?
A linguagem de programação foi criada para automatizar
tarefas e facilitar a vida de quem trabalha com grandes
projetos.

Podemos fazer procedimentos, automação de tarefas


para preencher dados e cálculos complexos que seriam
muito trabalhosos de se fazer até mesmo com funções.

No excel ja temos varias funções, mas se tivéssemos em uma situação onde nenhuma das funções fosse
capaz de satisfazer nossa condição?
Para isso usamos o VBA pois nele podemos também fazer nossas próprias funções e procedimentos.

Aqui temos uma função


para calcular o delta de
uma equação.

----

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
3
EXCEL COM VBA – Autoria (Família Carielo)

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
4
EXCEL COM VBA – Autoria (Família Carielo)

1ª Aula de Excel Avançado

SINOPSE DA AULA

Nesta 8ºaula do Curso de Excel Avançado, você aprenderá a criar formulários, utilizar o controle giratório
e a criar funções no Visual Basic.

CRIANDO FORMULÁRIOS

Nas versões 2007/2010 do Excel não se trabalham mais com barras de ferramentas. Então para se criar
formulários.

1ºPasso: Clique com o botão esquerdo do seu mouse no Botão office.

Clique aqui

2ºPasso: Clique em Opções do Excel.

Clique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
5
EXCEL COM VBA – Autoria (Família Carielo)

3ºPasso: Clique na opção “Mostrar guia Desenvolvedor na Faixa de Opções”, depois clique em Ok.

1ºClique aqui

2ºClique aqui

4ºPasso: Construa a seguinte planilha.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
6
EXCEL COM VBA – Autoria (Família Carielo)

5ºPasso: Selecione o menu Desenvolvedor e clique na célula B2.

1ºClique aqui

2ºClique aqui

6ºPasso: Clique na opção Inserir, depois selecione a opção Caixa de Combinação.

1ºClique aqui
2ºClique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
7
EXCEL COM VBA – Autoria (Família Carielo)

7ºPasso: Selecione a sua célula dessa fórmula.

1ºClique aqui

2ºClique aqui

8ºPasso: Selecione uma nova planilha e monte a seguinte estrutura.

Clique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
8
EXCEL COM VBA – Autoria (Família Carielo)

9ºPasso: Sua planilha deverá ficar assim.

Esta planilha contém 3 tabelas com áreas nomeadas que visam facilitar o trabalho com os
objetos de formulários do Excel. A primeira tabela indica o fator referente às despesas de Frete
e Seguro (intervalo de A2 até B5). A segunda tabela indica o número de prestações e a taxa de
juros para cada parcela (intervalo de D2 até E15). A terceira tabela indica a lista de produtos e
o seu respectivos preço (intervalo de G2 até H10).

10ºPasso: Selecione a seguinte planilha e insira o nome Produto, conforme o exemplo abaixo.

Clique aqui e insira o


nome

Selecione toda essa


planilha

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
9
EXCEL COM VBA – Autoria (Família Carielo)

11ºPasso: Selecione agora sua planilha 1.

Clique aqui

12ºPasso: Clique com o botão direito do mouse sobre a caixa que foi criada por você.

1ºClique aqui com o


botão direito

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
10
EXCEL COM VBA – Autoria (Família Carielo)

13ºPasso: Selecione agora a opção Formatar Controle.

Clique aqui

14ºPasso: Preencha o seu menu Formatar Controle da seguinte forma e clique em Ok.

Observe aqui

2ºClique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
11
EXCEL COM VBA – Autoria (Família Carielo)

15ºPasso: Observe como deverá ficar a sua planilha.

16ºPasso: Clique agora na setinha e veja as opções que serão dadas para você.

Clique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
12
EXCEL COM VBA – Autoria (Família Carielo)

17ºPasso: Selecione a opção Forno Micro-Ondas.

Na célula B3, vamos inserir uma função que irá pesquisar o valor do produto na planilha apoio,
em uma área chamada Tabela. Para o exemplo vamos uar a função índice da seguinte forma:
=INDICE(produto;B2;2).

18ºPasso: Clique na célula B3 e insira a seguinte fórmula: =ÍNDICE(produto;B2;2)

Clique aqui e insira a


fórmula

Na célula C4, vamos inserir um controle que irá informar a quantidade de produtos a serem
adquiridos. Dessa forma estaremos inserindo um Controle Giratório.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
13
EXCEL COM VBA – Autoria (Família Carielo)

CONTROLE GIRATÓRIO

1ºPasso: Clique na célula C4 e selecione o menu Desenvolver.

Clique aqui

2ºPasso: Clique na opção Inserir e depois selecione a opção Botão de Rotação.

1ºClique aqui

2ºClique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
14
EXCEL COM VBA – Autoria (Família Carielo)

3ºPasso: Crie o seu botão, clicando da seguinte forma.

1ºClique aqui

2ºClique aqui

4ºPasso: Clique com o botão direito do mouse sobre o seu botão.

Clique aqui com o


botão direito

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
15
EXCEL COM VBA – Autoria (Família Carielo)

5ºPasso: Selecione a opção Formatar Controle e observe o menu que será aberto.

6ºPasso: Insira os seguintes valores e dê Ok.

1ºObserve aqui os
valores

2ºClique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
16
EXCEL COM VBA – Autoria (Família Carielo)

7ºPasso: Clique fora, e depois clique na setinha para vê a mudança na célula B4.

2ºClique aqui

1ºClique fora

VALOR TOTAL

1ºPasso: Clique na célula B5 e digite a seguinte fórmula: =MULT(b3;b4)

Clique aqui e insira a


fórmula

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
17
EXCEL COM VBA – Autoria (Família Carielo)

NÚMERO DE PARCELAS

1ºPasso: Clique na célula C7 e selecione o menu Desenvolvedor.

2ºClique fora

1ºClique aqui

2ºPasso: Selecione agora a opção Inserir e depois Barra de Rolagem.

1ºClique aqui

2ºClique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
18
EXCEL COM VBA – Autoria (Família Carielo)

3ºPasso: Faça conforme a figura abaixo.

1ºClique aqui

2ºClique aqui

4ºPasso: Clique com o botão direito sobre a sua barra de rolagem e clique na opção Formatar Controle.

1ºClique aqui com o


botão direito

2ºClique aqui com o


botão direito

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
19
EXCEL COM VBA – Autoria (Família Carielo)

5ºPasso: Preencha o menu Formatar Controle da seguinte forma e clique em Ok.

Clique aqui

6ºPasso: Clique com o botão esquerdo do mouse fora, em qualquer ponto de sua planilha. Depois clique
sobre a seguinte seta.

1ºClique aqui

2ºClique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
20
EXCEL COM VBA – Autoria (Família Carielo)

%ENTRADA

1ºPasso: Clique na célula B6 e digite 10%.

Clique aqui e insira o


valor

VALOR DA ENTRADA

1ºPasso: Clique na célula B9 e insira a seguinte fórmula: =B5*B6

Clique aqui e insira a


fórmula

Na célula B10, devemos inserir uma fórmula que, com base no valor da entrada, taxas de
juros, números de parcela, valor total e subtraindo a entrada informada irá exibir o valor da
parcela.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
21
EXCEL COM VBA – Autoria (Família Carielo)

2ºPasso: Clique na célula B10 e insira a seguinte fórmula: =SE(B6=1;;PGTO(B8;B7;B5*(B6-1)))

Clique aqui e insira a


fórmula

VALOR TOTAL DA VENDA

1ºPasso: Clique na célula B11 e insira a seguinte fórmula: =B10*B7+B9

Clique aqui e insira a


fórmula

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
22
EXCEL COM VBA – Autoria (Família Carielo)

2ºPasso: Observe o resultado final de sua planilha e observe como ela está toda linkada e pronta para
ser utilizada em um ambiente profissional.

CRIANDO UMA FUNÇÃO NO VISUAL BASIC

A linguagem VBA ou Visual basic é utilizada em todos os programas do pacote Office, seu objetivo é dar
uma área de programação para que o usuário possa criar programas, para melhorar o funcionamento do
Excel.

1ºPasso: Selecione o botão Office e depois clique em Opções do Excel.

Clique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
23
EXCEL COM VBA – Autoria (Família Carielo)

2ºPasso: Selecione a opção Mostrar guia Desenvolvedor na Faixa de Opções e clique em ok.

1ºClique aqui

2ºClique aqui

3ºPasso: Observe que instantaneamente irá aparecer no seu menu a opção desenvolvedor, então dê um
clique no mesmo.

Observe aqui

4ºPasso: Selecione agora a opção Visual Basic.

Clique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
24
EXCEL COM VBA – Autoria (Família Carielo)

5ºPasso: Observe a área que você será encaminhado diretamente.

6ºPasso: Selecione o menu Inserir e clique em Módulo.

1ºClique aqui

2ºClique aqui

7ºPasso: Observe o código aberto, depois clique novamente em inserir e clique em Procedimento..

1ºClique aqui

2ºClique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
25
EXCEL COM VBA – Autoria (Família Carielo)

8ºPasso: Insira o nome subtrair, selecione o tipo para função, no escopo coloque público e clique em ok.

3ºClique aqui

1ºInsira aqui o nome

2ºClique aqui

9ºPasso: Observe a sua função aberta, insira as seguintes variáveis de sua função.

Insira as variáveis

10ºPasso: Digite a sua função abaixo, subtrair = x – y e dê enter, feito isso clique em fechar.

Digite a seguinte
fórmula

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
26
EXCEL COM VBA – Autoria (Família Carielo)

TESTANDO SUA FUNÇÃO

1ºPasso: Observe que instantaneamente você irá retornar a sua área de trabalho do Excel.

2ºPasso: Digite na célula A1 e B1 os seguintes dados, 5 e 6.

Digite os seguintes
dados

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
27
EXCEL COM VBA – Autoria (Família Carielo)

3ºPasso: Digite na célula c1 a função: =subtrair(b1;b2) e dê enter.

Digite a seguinte função

SALVANDO O SEU ARQUIVO HABILITANDO PARA MACRO

Para salvar o seu arquivo com a sua nova função no VBA será de uma forma um pouco diferente.

1ºPasso: Selecione o botão Office, selecione a opção Salvar Como e depois clique em Pasta de Trabalho
Habilitada para Macro.
1ºClique aqui

3ºClique aqui

2ºClique aqui

2ºPasso: Salve o seu arquivo normalmente.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
28
EXCEL COM VBA – Autoria (Família Carielo)

UTILIZANDO O ASSISTENTE DE FUNÇÃO

1ºPasso: Selecione o menu Fórmulas e selecione a opção Inserir Função.

1ºClique aqui

2ºClique aqui

2ºPasso: Observe a janela que será aberta, dê um clique na seta de opções e clique sobre a opção
definida pelo usuário.

1ºClique aqui

2ºClique aqui

3ºPasso: Observe que a sua função já foi localizada, dê um clique na mesma e depois em ok.

1ºClique aqui

2ºClique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
29
EXCEL COM VBA – Autoria (Família Carielo)

4ºPasso: Na opção X clique na seguinte célula (b2).

1ºClique aqui

2ºClique aqui

5ºPasso: Na opção Y clique na seguinte célula (c2) e depois clique em ok.

2ºClique aqui
1ºClique aqui

6ºPasso: Insira agora os seguintes valores em suas células.

Insira os valores

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
30
EXCEL COM VBA – Autoria (Família Carielo)

Exercício aplicado ao VBA -1-

Utilizando os seus conhecimentos de VBA, desenvolva uma função para resolver esse exercício
informando o valor final de cada produto.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
31
EXCEL COM VBA – Autoria (Família Carielo)

INTRODUÇÃO A EXCEL COM VBA UTILIZANDO FORM

VBA é uma linguagem de programação disponível em todo pacote Office, (Word, Excel, Access)
que disponibiliza ao usuário técnicas de programação para agilizar melhor seus trabalhos.

Para entender um pouco sobre a linguagem de programação no VBA você primeiro deverá
aprender seus alguns conceitos, como Desvios, Laços, Variáveis etc.

Variáveis
As variáveis servem para guardar valores temporários na memória.

 Double é um tipo de dado que serve para armazenar números reais.


 Integer é um tipo de dado que serve para armazenar números inteiros.
 Stringé um tipo de dado que serve para armazenar caracteres.

Declaração de Variáveis

Uma variável pode ser declarada, usando uma palavras-chave para definir seu escopo ou local
(procedimento ou módulo) onde ela poder ser acessada ou manipulada.

Dim – O valor da variável é retido apenas enquanto o procedimento no qual ela foi declarada
estiver em execução, ou seja, Dim é uma palavra reservada do sistema para declarar que o que
vem depois dela,que é uma variável.

Exemplo:

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
32
EXCEL COM VBA – Autoria (Família Carielo)

FORMULÁRIO DE MULTPILICAÇÃO NO VBA

Vamos começar fazendo um formulário bem simples,este formulário realizará contas de


multiplicação. Para isso iremos criar um formulário e utilizar seus componentes. Para criar um
formulário clique no MenuDesenvolvedor,Visual Basic, Inserir e clique na opção UserForm, como
mostra a baixo.

1ºPasso: Selecione o menu desenvolvedor e em seguida clique na opção visual basic. (Alt + F11).

2ºClique aqui 1ºClique aqui

2ºPasso: Dentro da plataforma do Visual Basic, selecione a opção inserir e depois clique em UserForm.

1ºClique aqui

2ºClique aqui

3ºPasso: Instantaneamente você será direcionado para monta o seu formulário.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
33
EXCEL COM VBA – Autoria (Família Carielo)

EXPLICAÇÃO SOBRE O FORM

Para montar nosso formulário usaremos a caixa de ferramentas do Form.

O form são pranchetas onde o aplicativo é criado visualmente. Cada form corresponde a uma
janela, quando o aplicativo estiver sendo processado.

Caixa de Ferramentas Use Form

1ºPasso: Começaremos inserindo uma caixa de texto, esta caixa permite que o usuário entre com o
texto, como um nome, endereço ou comentário, também nos permite inserir números. Para colocar esta
caixa de texto clique na mesma e adicione-a ao form.

1ºClique aqui 2ºRealize esse objeto

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
34
EXCEL COM VBA – Autoria (Família Carielo)

2ºPasso: Insira uma segunda caixa de texto da mesma forma que foi realizada a primeira.

Insira uma nova caixa de


texto

3ºPasso: O nosso próximo passo agora é inserir o botão que vai multiplicar os valores, acesse a caixa de
ferramentas, clique no botão de comando e adicione-o da mesma forma ao seu form.

1ºClique aqui 2ºColoque-o aqui

4ºPasso: Vamos dar também um nome ao nosso botão, clique em cima do mesmo, vá até a opção
caption existente no menu propriedades e altere o nome para multiplicar.

Insira o nome do seu


botão aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
35
EXCEL COM VBA – Autoria (Família Carielo)

INSERINDO RÓTULOS

Esta quase acabando, agora vamos inserir um rótulo (caixa de Texto) esse rótulo será usado
para adicionar nomes nas telas, ou seja, um rótulo exibe o texto em um formulário que explica
(parece) uma caixa de texto.

1ºPasso: Para adicionar a ferramenta de rótulo, dê um clique na seguinte opção da caixa de ferramentas
e em seguida dê um clique na seguinte área.

1ºClique aqui

2ºClique aqui

2ºPasso: Selecione a opção caption e modifique de label 1 para Resultado.

Insira aqui o nome


resultado

FAZENDO O FORM FUNCIONAR

Chegamos à melhor parte está na hora de fazer o seu form começar a funcionar para isso
vamos digitar o código abaixo dentro do botão de Multiplicar.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
36
EXCEL COM VBA – Autoria (Família Carielo)

1ºPasso: Dê um duplo clique em cima do botão que possui o nome de multiplicar.

Duplo clique aqui

2ºPasso: Observe instantaneamente o menu que deverá aparecer.

3ºPasso: Insira os seguintes comanados ao seu form.

Private Sub CommandButton1_Click()

Dim valor1, valor2 As Double

valor1 = TextBox1.Text

valor2 = TextBox2.Text

Label1.Caption = valor1 * valor2

End Sub

Descrição do Código

Dim (declarando as variáveis valor1 e valor2)

Double (porque o que vai ser inserido vai ser em forma de número)

TextBox1.Text ( é a propriedade da caixa de texto)

Label1. Caption (Label nome do rótulo, e Caption a propriedade)

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
37
EXCEL COM VBA – Autoria (Família Carielo)

4ºPasso: Prontinho! Agora é só clicar no botão executar, ou pressione (F5).

Clique aqui

5ºPasso: Observe o seu programa pronto.

Exercício aplicado ao VBA -2-

Use a mesma lógica e crie um projeto de calculadora como mostra a figura abaixo:

Para que os outros botões funcionem programe conforme o botão só mudando o


operador aritmético.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
38
EXCEL COM VBA – Autoria (Família Carielo)

Exercício aplicado ao VBA -3-

Vamos praticar mais um pouco, como já estudamos anteriormente monte o formulário abaixo:

Digite os códigos abaixo:

Para o botão Antecipado digite:

Private Sub CommandButton1_Click()

Dimmensalidade As Double

mensalidade = TextBox1.Text

Label2. Caption = mensalidade - (mensalidade * 5 / 100)

End Sub

Para o botão Atrasado digite:

Private Sub CommandButton2_Click()

Dimmensalidade As Double

mensalidade = TextBox1.Text

Label2.Caption = mensalidade + (mensalidade * 5 / 100)

End Sub

Desvios

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
39
EXCEL COM VBA – Autoria (Família Carielo)

Todas as linguagens de programação possuem a estrutura de desvio lógico de um algoritmo. A


função para o desvio lógico no VBA é a função SE. Na planilha do Excel ela aparece em língua
portuguesa e tem a característica de colocações das lógicas necessárias no parêntesis
=SE(condição; verdade; falso). No caso da programação a função é If e tem a seguinte
estrutura.

If condição Then

Comando1

Else
Comando1

End If

Onde os comandos são lógicas operacionais do programa que estarão sujeitas a condição ser
verdadeira ou falsa depois do If. Se a condição for verdadeira então a linha logo abaixo do Thené
verdade e serão obedecidos esses comandos no programa. Caso seja falso depois do Elseentra
os comandos para essa condição. A estrutura if-then-elsetem um resultado lógico binário que
divide o programa em “ramos” verdadeiros e falsos. Mas atenção todo if deve terminar com um
EndIf.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
40
EXCEL COM VBA – Autoria (Família Carielo)

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
41
EXCEL COM VBA – Autoria (Família Carielo)

2ª Aula de Excel com VBA

ABA DESENVOLVEDOR

1ºPasso: Para ativar a aba desenvolvedor vá no menu: Arquivo, em seguida clique em Opções
(suplementos),ative a opção desenvolvedor e depois clique em ok.

1. Depois clique em
“Personalizar faixa de opções”

2. Depois marque a opção


“Desenvolvedor”

3.Clique aqui

2ºPasso: Para acessar o VBA, dê um clique no menu desenvolvedor e depois clique em Visual Basic.

2.Clique aqui para


abrir o VBA 1.Clique aqui

Agora podemos gravar macros, inserir botões e dar funções para os mesmos na aba desenvolvedor.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
42
EXCEL COM VBA – Autoria (Família Carielo)

CONHECENDO A INTERFACE DO PROGRAMA


Aparentemente são muitas informações, porém iremos passo a passo destrinchando todo o programa,
para que você possa desenvolver seus conhecimentos nesta plataforma.

Menus do VBA

Aqui estão seus projetos


incluindo as planilhas do excel.

A caixa de ferramentas contém


os componentes que iremos
usar para fazer nossos
programas.

Aqui é a Caixa de Propriedade de


cada componente, os itens são os
mesmos nas abas Alfabético e
Categorizado

Observação: cada componente tem suas propriedades na caixa de propriedades, uma vez que
inseridos no formulário podem ser alteradas as propriedades visuais ou funcionais desse
componente.

Para alterar a propriedade de um componente deve-se selecionar o componente


primeiramente, e depois alterar a propriedade desejada na –Caixa de Propriedades-.

Adiante iremos criar umprograma para começarmos a entender a programação VBA.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
43
EXCEL COM VBA – Autoria (Família Carielo)

PROGRAMA BÁSICO

Vamos começar com um programa para somar e subtrair dois números, na aba desenvolvedor no excel
abra o visual basic.

1ºPasso: Depois de ativar a aba desenvolvedor clique em Visual Basic.

2.Visual Basic 1.Aba desonvolvedor

2ºPasso: Assim que abrir o VBA vamos criar nossa primeira janela para isso no menu inserir na parte
superior do VBA insira um userform.

1.Clique aqui

2.Clique em UserForm

3ºPasso: Agora na propriedade da nossa janela altere o capiton para Cálculo.

Repare que ao mudarmos a propriedade


caption da nossa janela o titulo da mesma
muda.

Dê um duplo clique aqui


para mudar o título de
nossa janela

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
44
EXCEL COM VBA – Autoria (Família Carielo)

4ºPasso: Agora na caixa de ferramentas, insira um rótulo, duas caixas de textos e dois botões.

1.Rótulo 2.Caixa de texto

3.Botão

Deixe a sua janela da seguinte forma.

5ºPasso: Selecione o commandbutton1 e na propriedade Caption escreva " + " apenas e no


commandbutton2 escreva " - ". No rótulo altere a propriedade Caption para Resultado.

Clique uma vez no commandobutton1


para seleciona-lo

Apague o que estiver escrito na propriedade


Caption e em seguida escreva o sinal +

6ºPasso: Observe como deverá ficar a sua calculadora.

Ao final ficará da seguinte maneira:

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
45
EXCEL COM VBA – Autoria (Família Carielo)

DECLARANDO VARIÁVEIS

1ºPasso: Agora clique duas vezes no botão + e vamos declarar as variáveis, escreva na pasta UseForm1
que será aberta:

Dim n1,n2 as Double

Aqui estamos declarando duas variáveis n1 e n2 do tipo Double que é para todo tipo de número, antes de
tudo escrevemos " Dim " que é a abreviação de Dimension que significa dimensão, declarando Dim antes
de qualquer variável previne de duplicarmos as variáveis por acidente.

Agora escreva logo abaixo da linha que declaramos as variáveis:

n1 = TextBox1.Text
n2 = TextBox2.Text

Label1.Caption = n1 + n2

2ºPasso: Após escrever a sua programação, dê um clique no botão de fechar.

1.Programe aqui
2.Clique aqui

3ºPasso: Retorne para a sua interface gráfica. Dê um clique com o botão direito na opção UserForm1 e
depois, dê um clique em exibir código.

1. Dê um clique aqui com o


otão direito

2. Clique em exibir
código

Você pode fazer isso sempre que quiser alterar o código ou o objeto do programa que você
está fazendo.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
46
EXCEL COM VBA – Autoria (Família Carielo)

4ºPasso: Agora, clique duas vezes no botão - e escreva a sua programação:

Dim n1,n2 as Double

n1 = TextBox1.Text
n2 = TextBox2.Text

Label1.caption = n1 - n2

1.Oserve aqui a sua


programação

2.Clique aqui

5ºPasso: Aperte F5 para executar o programa e teste, ou clique no seguinte otão.

Clique aqui

Repare que fizemos a operação diretamente (Label1.caption = n1 - n2)

A referência que nós temos, lael1.caption, faz referência ao rótulo no qual demonstrará a resposta.

A lael, é este rótulo onde


será apresentado a
resposta

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
47
EXCEL COM VBA – Autoria (Família Carielo)

ATRIBUINDO VARIÁVEIS PARA O RESULTADO

1ºPasso: Podemos também atribuir uma variável para o resultado, assim facilita na hora de programar
algo maior vejamos a seguir um exemplo:

Dim n1,n2,resultado as Double

n1 = TextBox1.Text
n2 = TextBox2.Text
resultado = val(n1) + val(n2)

Label1.caption = resultado

Preste atenção, agora que temos uma nova variável, resultado, e definimos que essa variável é igual a n1
- n2, então sempre que formos exibir o resultado da operação, precisamos apenas da variável que está
servindo de resultado.

Usamos a expressão “val“ para informar ao programa que queremos somar os valores e não " junta-los".

2ºPasso: Agora vamos testar, na área do useform, dê um duplo clique no botão + e nas variáveis adicione
a variável resultado separando por virgula, apenas ficando a linha de variáveis da seguinte maneira:

Dim n1,n2,resultado as Double

Logo, abaixo da linha onde temos n2 = textbox2.text escreva: resultado = val(n1)+ val(n2)

Em seguida, onde está escrito Label1.caption = n1 + n2 apague o que estiver depois do sinal de igualdade
= e escreva logo em seguida no mesmo lugar, resultado.

Depois execute e teste o programa e lembre de que você pode usar isso em qualquer programa que for
realizado ou algoritmo.

Exercício aplicado ao VBA – 4-

1º No mesmo programa que acabamos de fazer insira mais dois botões um para dividir e outro para
multiplicar e insira os códigos em cada um.

2º Faça um programa para somar três números.

DICA: Não esqueça de declarar as variáveis, elas são fundamentais para a interpretação do programa.

3º Faça um programa para somar 4 números e depois divida o resultado da soma por 2 números.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
48
EXCEL COM VBA – Autoria (Família Carielo)

PORCENTAGEM

Agora vamos fazer um programa para calcular a mensalidade de um aluguel, caso ele esteja atrasado ou
seja antecipado.

1ºPasso: No mesmo projeto, selecione o menu inserir e depois clique em UserForm para inser outra janela
do nosso projeto.

1.Clique aqui

2.Clique em UserForm

2ºPasso: Insira agora dois otões, uma caixa de texto e um rótulo ao seu userform2.

Oserve a disposição dos


seus otões

3ºPasso: No Caption do botão1 escreva antecipado no Caption do botão 2 escreva atrasado e no rótulo
escreva resultado.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
49
EXCEL COM VBA – Autoria (Família Carielo)

4ºPasso: Depois de organizar tudo, clique duas vezes no botão antecipado e escreva a sua programação:

Dim mens as Double

mens = TextBox1.Text

label1.caption = "antecipado " & mens - (mens * 0.15)

Oserve a sua
programação

6ºPasso: Feche a sua pasta de programação do userform.

5ºPasso: De volta para ao userform, clique duas vezes no botão atrasado e escreva a sua programação:

Dim mens as Double

mens = TextBox1.Text

label1.caption = "atrasado " & mens + (mens * 0.15)

Oserve a sua
programação

6ºPasso: Feche a sua pasta de programação do userform.

7ºPasso: Agora de volta ao userform, selecione o Rótulo e na propriedade Autosize deixe em True, depois
execute o programa e salve o mesmo.

2ºClique aqui 1ºClique aqui

3ºClique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
50
EXCEL COM VBA – Autoria (Família Carielo)

SALVANDO ARQUIVO

1ºPasso: Quando for salvar um programa em VBA no excel voce deve selecionar a opção -> pasta de
trabalho habilitada para macro do excel(*.xlsm). Pois é preciso para que o excel reconheça que existe um
algoritmo dentro da planilha.

1ºClique aqui

2ºClique aqui

BOTÃO DE OPÇÃO / FUNÇÃO SE

O botão de opção serve para que possamos escolher entre dois algoritmos,ou seja, o programa irá executar
um código quando um botão estiver selecionado e outro código para o outro botão que estiver selecionado.

1ºPasso: Para começar, insira outro UserForm no mesmo projeto que estamos desenvolvendo e dentro
da nossa janela insira dois botões de opção, um rótulo, uma caixa de texto e um botão de comando.

1ºClique aqui

2ºClique aqui

Deixe o seu
useform assim

2ºPasso: Mude o caption do botão de opção 1, para Dólar e o Caption do botão de opção 2, para Euro.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
51
EXCEL COM VBA – Autoria (Família Carielo)

3ºPasso: No commandbutton1 escreva no Caption Converter e no seu rótulo insira, Resultado.

Deixe o seu
useform assim

4ºPasso: No rótulo resultado, mude as propriedades Autosize para True.

1ºClique aqui

2ºClique aqui

Quando, ajustamos o autosize para true, automaticamente ele ajusta a caixa do rótulo para o
seu tamanho ideal.

5ºPasso: Agora clique duas vezes no botão converter e escreva a seguinte programação:

Dim vlr As Double

vlr = TextBox1.Text

If OptionButton1.Value = True Then

Label1.Caption = FormatCurrency(vlr / 2.71)

Else: If OptionButton2.Value = True Then Label1.Caption = FormatCurrency(vlr / 3.23)

End If

Observe que usamos:

 O if para nossa primeira condição;

 O else if para a segunda condição;

 O código FormatCurrency para formatar os valores de saída em moeda;

 Também devemos declarar o comando End If para cada condição que inserirmos no nosso
programa.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
52
EXCEL COM VBA – Autoria (Família Carielo)

6ºPasso: Salve tudo e execute o seu programa (pressione F5).

INSERINDO BOTÃO NO EXCEL

1ºPasso: Agora vamos criar botões para abrir seu programa dentro do excel, voltando a planilha do excel
no menu desenvolvedor clique na ferramenta inserir depois em botão.

2.Clique aqui

1.Clique aqui
3.Clique aqui

2ºPasso: Dê um clique em qualquer célula de sua planilha, para que o seu botão apareça.

2.Observe o seu botão

1.Clique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
53
EXCEL COM VBA – Autoria (Família Carielo)

3ºPasso: Depois de criar o seu botão, aparecerá uma janela, para atribuir uma macro nessa janela clique
em novo.

Clique aqui

3ºPasso: Irá aparecer uma nova janela dentro do VBA, para inserir os comandos então escreva:

userform1.show (Fazendo menção, ao primeiro useform que deverá aparecer).

4ºPasso: Aqui estamos chamando o userform1, para chamarmos os outros programas que fizermos, crie
outros botões e atribua novas macros para eles, assim como fizemos com o primeiro botão.

5ºPasso: Para renomear o seu botão, clique com o botão direito do mouse em cima do mesmo e clique
em Editar Texto.

1ºClique aqui com o


botão direito

2ºClique aqui

5ºPasso: Não precisa apertar enter para atribuir o nome, basta apenas escrever. Em seguida, crie os
botões aluguel e conversão, em seguida atriua as macros aos botões.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
54
EXCEL COM VBA – Autoria (Família Carielo)

6ºPasso: Observe os códigos dos botões.

7ºPasso: Execute o seu programa e oserve as funcionalidades, viu como foi simples?

Caso, você deseje alterar o tamanho ou o posicionamento do seu otão, para selecionar o
mesmo, asta clicar em cima dele com o otão direito do mouse.

Exercício aplicado ao VBA – 5-

1º No mesmo programa que acabamos de fazer insira mais dois botões um para dividir e outro para
multiplicar e insira os códigos em cada um.

2º Faça um programa para somar três números.

DICA: Não esqueça de declarar as variáveis, elas são fundamentais para a interpretação do programa.

3º Faça um programa para somar 4 números e depois divida o resultado da soma por 2 números.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
55
EXCEL COM VBA – Autoria (Família Carielo)

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
56
EXCEL COM VBA – Autoria (Família Carielo)

3ª Aula de Excel com VBA

CAIXA DE COMBINAÇÃO

Vamos agora aprender a usar a caixa de combinação e de seleção, a caixa de combinação na verdade é
uma combobox que serve para listar determinados itens ou valores.

O programa que criaremos aqui, serve para calcular o valor das parcelas de uma compra.

1ºPasso: Para começar abra o Excel, em seguida o Visual Basic, insira um UserForm e dentro da janela
insira uma caixa de texto, um rótulo, um botão e uma caixa de seleção.

Caixa de combinação

Oserve como deverá ficar o seu userform.

2ºPasso: Renomeie o botão para Calcular, o rótulo para Resultado e mude as propriedades do rótulo
Autosize para true e a propriedade Wordwrap para false, na propriedade Caption da nossa janela escreva
Parcelas.

Mude para False

Mude para True

1. Clique uma vez para


selecionar o rótulo.

3ºPasso: Clique duas vezes no botão calcular e escreva a seguinte programação:

Dim c As Double

Dim p As Integer

c = TextBox1.Text

p = ComboBox1.Value

Label1.Caption = c / p

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
57
EXCEL COM VBA – Autoria (Família Carielo)

Temos nosso programa já funcionando, mas a caixa de combinação ainda está vazia, se você executar o
programa verá que não tem nenhum valor, então precisaremos inserir os valores na caixa de combinação,
para que ao executarmos o programa já estejam disponíveis.

EVENTOS

Ainda na janela de códigos, onde você acabou de escrever o seu programa de parcelas repare na parte
superior da janela que possuimos duas caixas de listagem, na da esquerda temos os componentes ativos,
ou seja, os componente que estamos usando no momento. Na da direita, temos os eventos que
representam algo que poderá acontecer no programa executado pelo usuário.

Componentes Eventos

Por exemplo, se desejarmos executar algum comando, quando o usuário fechar o programa usamos o
evento Exit relacionando-o com o componente onde estará o código.

ALTERANDO UM EVENTO

1ºPasso: Ainda na janela de códigos na caixa de seleção a esquerda, selecione o componente userform,
automaticamente irá criar um procedimento para o componente veja a seguir.

1.Clique na seta da caixa de


seleção para escolher um
componente

2.Depois clique em UserForm

Aqui está o procedimento que é


criado automaticamente mas esse é
para o evento Click

O evento que precisamos é o Initialize que fará com que nossos comandos sejam executados
assim que o programa inicializar.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
58
EXCEL COM VBA – Autoria (Família Carielo)

2ºPasso: Na caixa de listagem a direita selecione esse evento (intialize), e então será criado o
procedimento que desejamos.

1.Clique na seta da caixa de


listagem

2.Clique aqui

Procedimento initialize criado

3ºPasso: Agora dentro do procedimento criado escreva os códigos:

ComboBox1.AddItem "2"

ComboBox1.AddItem "3"

ComboBox1.AddItem "4"

ComboBox1.AddItem "5"

ComboBox1.AddItem "6"

ComboBox1.AddItem "7"

ComboBox1.AddItem "8"

ComboBox1.AddItem "9"

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
59
EXCEL COM VBA – Autoria (Família Carielo)

4ºPasso: Depois disso, salve e execute o programa para testar se funcionou, você deverá checar a caixa
de combinação.

Nossa caixa de combinação já tem os valores, resta


alguns ajustes para isso, feche essa janela para voltar
ao visual basic e no userform1 selecione exibir objeto
para voltarmos a interface gráfica do nosso
programa.

Observe a sua caixa de


combinação

5ºPasso: Selecione a caixa de listagem e na propriedade Style escolha a opção 2 –


fmStyleDropDownList.
1.Clique aqui

2.Clique aqui

Essa opção quando habilitada não permite que a caixa de listagem seja editada.

Exercício Aplicado ao VBA -6-

1º No mesmo programa que acabamos de fazer insira mais dois botões um para dividir e outro para
multiplicar e insira os códigos em cada um.

2º Faça um programa para somar três números.

DICA: Não esqueça de declarar as variáveis, elas são fundamentais para a interpretação do programa.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
60
EXCEL COM VBA – Autoria (Família Carielo)

CAIXA DE SELEÇÃO

Agora, iremos adicionar um novo componente em nosso programa de parcelas, a caixa de seleção, ela
serve para dar a opção ao usuário de executar ou não uma determinada função do nosso algoritmo, então
mais uma vez iremos usar a estrutura de condição " SE " onde no nosso caso é o IF.

1ºPasso: Insira uma caixa de seleção em nosso programa de parcelas e nomeie o Caption para: " Com
Juros".

1ºClique aqui

2ºClique aqui

2ºPasso: Em seguida, clique duas vezes no botão Calcular, apague a linha abaixo de onde atribuímos os
valores das variáveis c e p.

Apague aqui

E então escreva os seguintes comandos na mesma linha:

If CheckBox1.Value = False Then

Label1.Caption = FormatCurrency(c / p)

Else: If CheckBox1.Value = True Then Label1.Caption = FormatCurrency(((c * ((1 + 0.02) ^ p)) / p))

End If

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
61
EXCEL COM VBA – Autoria (Família Carielo)

Observe a sua
programação

Usamos aqui duas condições: onde na primeira condição, quando a caixa de seleção estiver desativada o
programa irá apenas dividir o valor pelas parcelas.

Na segunda condição, o programa irá executar a função onde temos a fórmula dos juros compostos, salve
tudo e execute e teste o seu programa, não esqueça de salvar com a opção Habilitada para macros do
Excel.

3ºPasso: Execute o seu programa (F5) e observe se o mesmo está funcionando corretamente.

Observe o funcionamento
da sua caixa de seleção

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
62
EXCEL COM VBA – Autoria (Família Carielo)

MAIS CONDIÇÕES – IF – ELSE:IF - ELSEIF

Vamos trabalhar agora com outras condições, vamos elaborar um programa que calcule a média de um
aluno a partir de 5 notas sendo que se a nota 2 ou a nota 5 for menor que 3 ele será reprovado e se a nota
1 e a nota 3 for menor que 5 também será reprovado.

Note que, temos as condições " E ", " OU ", na condição e afirmamos que as duas respostas tem que ser
verdadeiras na condição ou apenas uma das respostas precisa ser verdadeira.

1ºPasso: Para começar abra o Excel e na aba desenvolvedor abra o Visual Basic e insira um UserForm.

2ºPasso: Dentro do UserForm insira 6 rótulos e 5 caixas de texto e um botão depois organize cada caixa
de texto ao lado do rótulo correspondente, onde o rótulo1 ao lado da caixa de texto 1:

3ºPasso: Nas propriedades do rótulo Resultado deixe em False a propriedade WordWrap e em true a
propriedade AutoSize.

4ºPasso: Agora clique duas vezes no botão calcular e vamos aos comandos:

Primeiro declaramos as variáveis que serão nota 1, 2, 3, 4, e nota 5 do tipo Double:

Dim n1, n2, n3, n4, n5 As Double

Agora atribuindo as variáveis as caixas de texto:

n1 = TextBox1.Text

n2 = TextBox2.Text

n3 = TextBox3.Text

n4 = TextBox4.Text

n5 = TextBox5.Text

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
63
EXCEL COM VBA – Autoria (Família Carielo)

5ºPasso: Em seguida escreva nosso comando de condição:

If (n2 < 3 Or n5 < 3) Or (n1 < 5 And n3 < 5) Then (nesta linha está nossa condição)

Label6.Caption = "Reprovado " & " 2º nota " & n2 & " 1º Nota " & n1

Else: Me.Label6 = "Aprovado " & " Média = " & (Val(n1) + Val(n2) + Val(n3) + Val(n4) + Val(n5)) / 5

End If

Para finalizar não esquecer do End IF pois estamos usando uma condição.

Na linha onde temos nossa primeira condição, repare que temos dois parênteses:

1.No primeiro temos, (n2 < 3 OR n5 < 3) isso quer dizer que se n2 OU n3 for menor que 3 será
reprovado em seguida temos a nossa segunda condição que também vem seguida de OR (ou) que diz que
se nossa condição do primeiro parênteses for falsa.

2.A segunda condição deverá ser analisada onde temos: (n1 < 5 and n3 < 5) aqui estamos dizendo
que se n1 E n3 forem ambos menor do que 5 então o aluno será reprovado.

Logo abaixo temos o comando Else (não seguido de IF), o comando else não seguido de if serve para não
precisarmos declarar uma condição isso significa que se todas as opções anteriores forem falsas o programa
executará o que estiver no Else.

6ºPasso: Execute o seu programa e teste o mesmo.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
64
EXCEL COM VBA – Autoria (Família Carielo)

EXEMPLOS PARA ESTRUTURA CONDICIONAL DE REPETIÇÃO

A partir de agora, veremos alguns exemplos para entender melhor como funciona a estrutura condicional,
acompanhe escrevendo os códigos no VBA, basta abrir um userform e clique duas vezes no mesmo para
inserir os códigos.

Aqui temos a condição

Aqui temos o " Else " não importa


quantas condições temos antes, o
programa irá executar essa linha de
código caso elas forem falsas.

Temos uma diferença entre IF, Else:IF e ElseIF , o Else IF só pode ser usado uma vez e deverá ter uma
condição dentro dele, por exemplo:

If n1 < 5 Then

Label1.Caption = "Real" Repare aqui temos uma


condição.
Else: If (n1 > 10 And n1 < 50) Then Label1.Caption = "Surreal"

e se tentarmos usar Else If sem uma condição veja o que acontece:

Repare que quando apagamos a


condição temos um erro

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
65
EXCEL COM VBA – Autoria (Família Carielo)

Porém o Else IF só nos permite usa-lo uma vez, seguido da condição IF, ou seja, para cada estrutura IF
que tivermos só podemos usar o Else IF uma vez, para cada estrutura vejamos um exemplo a seguir:

Correto

Temos aqui nossa primeira


estrutura IF

Temos aqui nossa segunda


estrutura IF

Nossa estrutura está correta, porém é limitada a apenas duas condições, se por exemplo desejássemos
incluir o Else para executarmos, outra condição caso as anteriores forem falsas não é possível ao
adicionarmos o comando :

Else: Label1.Caption = "NO"

Logo abaixo da estrutura Else If o programa apresenta erro ao ser executado, retornando o seguinte erro:

"Erro de compilação: Else sem IF "

Veja no exemplo a seguir:

Erro apresentado
ao executar.

Novas linhas adicionadas

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
66
EXCEL COM VBA – Autoria (Família Carielo)

Se desejarmos usar mais de duas condições iremos usar então o ElseIf veja no exemplo a seguir:

Veja, temos agora três


possíveis respostas para três
condições diferentes.

A estrutura ElseIF nos permite também usar o Else vejamos a seguir:

Podemos usar o Else independente


de quantas condições temos a
estrutura ElseIf nos permite isso

Então temos uma tabela básica de como devemos usar as estruturas de condição

+ + +
+

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
67
EXCEL COM VBA – Autoria (Família Carielo)

Temos também os operadores de comparação que são:

< (menor que)

> (maior que)

= (igual)

>= (maior ou igual)

<= (menor ou igual)

>< (diferente de)

Vejamos um exemplo com os operadores >= e <=

Variáveis n1 e n2
definidos como 25

Condições

Resultado
O mesmo vale para os outros operadores.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
68
EXCEL COM VBA – Autoria (Família Carielo)

Exercício Aplicado ao VBA -7-

1° Faça um programa que leia a velocidade de um carro e informe se está em velocidade média, alta ou
baixa de acordo com a seguinte faixa: abaixo de 60 = Velocidade baixa, acima de 60 e abaixo de 90 =
velocidade baixa, acima de 90 = velocidade alta.

2º Faça um programa para calcular o IMC seguindo a seguinte tabela:

Lembrando que para elevar um número a uma potência usamos a expressão n^e onde n é o número e "
e " é a potência

3º Faça um programa que efetue a soma de dois números e depois faça a divisão da soma por 3 caso a
soma ultrapassar 25 e caso a soma for menor que 25 a divisão deverá ser por 2.

SELECT CASE

Agora iremos ver a estrutura de seleção onde o resultado depende de uma escolha de menu através de
um dado de entrada, por exemplo queremos um programa que ao ser digitado 1 ele faça uma soma e ao
ser digitado 2 ele faça uma subtração, para isso podemos usar o case que também serve para ser usado
com texto.

A sintaxe do select case é a seguinte:

select case variavel(sua variavel que deseja usar como escolha)

case (condição1)

comandos a serem executados

case (condição2)

comandos a serem executados

case else

outros comandos a serem executados

End Select

vamos começar com um programa básico:

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
69
EXCEL COM VBA – Autoria (Família Carielo)

1ºPasso: Abra o VBA e insira um userform, dentro do userform insira um botão e uma caixa de texto
depois no caption do botão escreva Teste e na propriedade Caption da nossa janela escreva Case Ficando
da seguinte maneira:

2ºPasso: Clique duas vezes no botão Teste e escreva :

Dim n1 As Integer

n1 = textbox1.text
Select Case n1

Case 1

MsgBox ("100")

Case 2

MsgBox ("200")

Case Else

MsgBox ("Digite 1 ou 2")

End select

Depois Execute o programa clicando em Executar na barra de ferramentas ou pressionando F5:

Executar, clique ou
aperte F5.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
70
EXCEL COM VBA – Autoria (Família Carielo)

Observe a sua Observe o seu programa


programação em execução

MSG BOX

Usamos aqui o MsgBox para retornar o resultado em uma pequena janela criada automaticamente no
Excel, usamos também o Case Else que tem a função de dar um retorno, caso as escolhas anteriores
falharem, não podemos esquecer também que no final do algoritmo devemos finalizar com o comando End
Select pois o programa precisa entender que é o fim das escolhas.

Repare uma alteração no código,


também é possível declarar uma faixa
de números a qual ele deverá
também resopnder

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
71
EXCEL COM VBA – Autoria (Família Carielo)

SELECT CASE -2-

Vamos incluir algo mais, nosso programa agora, deverá ler o nome do funcionário de uma empresa e
também o nível numa escala de 0 a 5 e retornará com o nome do mesmo funcionário e sua função de
acordo com o seu nível.

1ºPasso: Abra o VBA e insira um userform, dentro da nossa janela também insira uma caixa de texto e
uma caixa de combinação e um botão.

Observe os elementos do
useform

2ºPasso: Mude o Caption da janela para Teste Funcionário e o Caption do botão para Resultado.

3ºPasso: Na propriedade Style da caixa de combinação escolha a opção 0.

1ºClique aqui

2ºClique aqui

Esta habilitação deverá ser feita, para não haver uma alteração na combobox, no momento de
execução do programa. Impedindo assim, que o usuário insira outros valores.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
72
EXCEL COM VBA – Autoria (Família Carielo)

4ºPasso: Em seguida, dê um duplo clique no botão, duas vezes e escreva:

Dim nome As String


Declarando as variáveis
Dim cargo As Integer

nome = TextBox1.Text
Atribuindo as variáveis aos componentes
cargo = ComboBox1.Value

Select Case cargo

Case 1

MsgBox (nome & " Gestor ")

Case 2

MsgBox (nome & " Analista ")


Possíveis escolhas
Case 3

MsgBox (nome & " Contador ")

Case 4

MsgBox (nome & " Supervisor ")

End Select

5ºPasso: Execute o seu programa e observe se as suas funcionalidades estão ativas.

1ºInsira um nome
aqui

2ºInsira um valor de
0-4

Podemos também fazer escolhas com variáveis de texto vejamos um exemplo a seguir.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
73
EXCEL COM VBA – Autoria (Família Carielo)

CASE COM STRINGS

1ºPasso: Em um novo userform insira os seguintes componentes:Caixa de texto e botão.

2ºPasso: Renomeie o Caption da janela e botão a sua preferência. Aqui estaremos comparando valores
de texto em vez de valores numéricos.

3ºPasso: Com nosso userform pronto clique duas vezes no botão e escreva:

Dim time As String


time = TextBox1.Text

Select Case time


Case “botafogo”
MsgBox (“Primeira divisão”)
Case “flamengo”
MsgBox (“segunda divisão”)
Case “internacional”
MsgBox (“terceira divisão”)
Case Else
MsgBox (“Digite um time válido”)
End Select

End Sub

A variável time do
tipo String(texto)

Case seguido das escolhas entre


aspas sempre que formos
inserir textos.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
74
EXCEL COM VBA – Autoria (Família Carielo)

4ºPasso: Execute e verifique o seu programa.

SELECT CASE -3- GASOLINA

Podemos também usar algoritmos para calcular a partir de uma escolha, faremos agora um programa que
deverá calcular o preço do combustível comprado por um cliente e deverá dar repostas diferentes para
cada tipo de combustível, nesse caso usaremos como exemplo a gasolina aditivada, premium e comum.
1ºPasso: Em um novo userform adicione duas caixas de texto, um botão e um rótulo, altere o caption do
botão para Calcular e nas propriedades Wordwrap deixe em False e em Autosize deixe em True.

Ao lado de cada caixa de texto adicione um rótulo identificando os campos e deixe da seguinte maneira:

TextBox2

TextBox1

Clique duas vezes no botão Calcular e escreva:

Dim gas As Double

Dim tipo As String

gas = TextBox1.Text

tipo = TextBox2.Text

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
75
EXCEL COM VBA – Autoria (Família Carielo)

Select Case tipo

Case "comum"

Label3.Caption = gas * 2.75

Case "aditivada"
Aqui está nossas diferentes
Label3.Caption = gas * 3.1 escolhas de calculo

Case "premium"

Label3.Caption = gas * 3.25

Case Else

MsgBox ("Digite um tipo válido")

End Select

Execute o programa e
confira o seu funcionamento

Exercício Aplicado ao VBA -7-

1º Faça um programa que leia o nome de três carros e de acordo com o carro retorne com a marca do
mesmo. EX: Gol = Wolkswagen

2º Faça um programa que calcule os juros de um certo valor e de acordo com a especificação de mínimo,
médio ou máximo os juros tenham valores diferentes. EX: valor 560 com juros mínimo = (560 * 0.01) +
560 = 565.6 , para juros médio defina qualquer outra porcentagem assim para juros máximo também.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
76
EXCEL COM VBA – Autoria (Família Carielo)

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
77
EXCEL COM VBA – Autoria (Família Carielo)

4ª Aula de Excel com VBA

LAÇOS DE REPETIÇÃO

Os laços de repetição servem para executar um mesmo algoritmo várias vezes até que se chegue em um
determinado objetivo, por exemplo queremos somar gradualmente 2+2 até que se chegue em 10 então o
laço de repetição nos permitirá realizar esta atividade.

No VBA temos as seguintes estruturas: For...Next, Do While...Loop, Do Until...Loop, Do...Loop While,


Do...Loop Until.

1ºPasso: Abra o VBA, insira um Userform, dentro da janela insira um botão e uma caixa de listagem.

Botão Caixa de listagem

2ºPasso: Dê um duplo clique no seu botão e insira a programação abaixo.

Dim i As Integer

For i = 1 To 50

ListBox1.AddItem (i)

Next i

Abaixo da linha onde declaramos a variável i temos a estrutura do laço de repetição que diz:

para i = 1 até (to) 50


caixadelistagem1.adicionaritem(i)
proximopasso = retornar para i

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
78
EXCEL COM VBA – Autoria (Família Carielo)

O programa, irá fazer o mesmo processo até que tenha atingido 50 vezes, em seguida, execute o programa
clique no botão e veja.

LAÇOS DE REPETIÇÃO -2-

Poderemos efetuar soma de uma ordem de números e fazer uma tabuada, utilizando as estruturas do
laço de repetição, desenvolveremos este conteúdo agora.

1ºPasso: Adicione em um novo userform uma caixa de listagem, um botão e uma caixa de texto.

Observe a disposição
de seu programa

2ºPasso: Na propriedade caption da nossa janela escreva Tabuada, no botão escreva Calcular, e em
seguida, clique duas vezes no botão para escrever a sua programação.

Dim y,x as integer

x = textbox1.text

for y = 1 to 10

listbox1.additem(x & " * " & y & " = " & x*y)

next y

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
79
EXCEL COM VBA – Autoria (Família Carielo)

Confira como ficou a nossa tabuada:

1ºInsira o número

2ºClique em calcular

Repare que o número "3" a direita representa nossa variável e logo após o sinal de multiplicar temos o
número que representa nosso laço que vai de 1 a 10 (for y = 1 to 10).

MOD

Como o laço também podemos checar divisões de números em sequência para saber se é divisível por
certo número, por exemplo queremos saber quantos e quais números são os que podemos dividir por 5 e
ter um resultado inteiro ou até mesmo saber todos os números pares e ímpares. O MOD trabalha apenas
com números inteiros.

Para isso usaremos o comando MOD, a sintaxe do MOD é a seguinte:

" n MOD x " o MOD simplesmente pega o resto da divisão EX: 10 MOD 5 , neste caso o comando MOD irá
pegar o número 10 e dividir por 5 mas o que interessa para esse comando é apenas o resto da divisão
como 10 dividido por 5 não tem resto ou seja é igual a zero esse será o resultado do MOD = 0.

Outro exemplo: 10 MOD 7 neste caso o resultado será 3 pois se dividirmos 10 por 7 sobram 3 que é o
resultado do nosso MOD.

1ºPasso: Insira em um novo useform,o qual deverá conter: um botão e um rótulo.

Observe a disposição
de seu programa

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
80
EXCEL COM VBA – Autoria (Família Carielo)

2ºPasso: Dê um duplo clique no botão e escreva a sua programação.

Label1.caption = (10 Mod 7)

3ºPasso: Em seguida, execute o seu programa.

Observe o resultado.

MOD -2- LAÇO COM CONDIÇÃO IF

Agora vamos usar o laço com a condição IF, para mais exemplos de como usar a função MOD.

1ºPasso: Apague o rótulo que colocamos no nosso programa anterior e insira uma caixa de listagem.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
81
EXCEL COM VBA – Autoria (Família Carielo)

2ºPasso: Dê um duplo clique no botão e apague a linha " Label1.caption = (10 Mod 7) ", deixando da
seguinte forma.

3ºPasso: Em seguida, escreva:

Dim i As Integer

For i = 1 To 10

If (i Mod 2 = 0) Then

ListBox1.AddItem (i)

End If

Next i

Nas linhas onde temos " if ( i MOD 2 = 0) " "ListBox1.AddItem (i)" estamos determinando ao programa
que se a divisão de i por 2 seja igual a zero, o programa deverá inserir na listbox a número do nosso laço
cujo resto da divisão resultou em zero.

Observe, desenvolvemos um programa com o auxílio da ferramenta laço, a condicional IF e o


mod, para determinarmos apenas os número pares.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
82
EXCEL COM VBA – Autoria (Família Carielo)

Exercício Aplicado ao VBA -8-

1º Faça um programa para exibir os números pares de 1 até 500.

2º Faça um programa para exibir apenas os números impares de 1 até 150.

3º Faça um programa para exibir apenas os números divisíveis por 7 de 1 até 500

ATRIBUINDO VALORES PARA CÉLULAS

Também é possível inserir valores nas celular usando o VBA, por exemplo podemos numerar várias linhas
usando um código simples ou até imprimir nas células resultados de contas feitas diretamente no VBA,
vejamos um exemplo.

1ºPasso: Abra o VBA, insira um UserForm e insira apenas um botão no UserForm.

Altere a propriedade caption


do UserForm para Numeração.

Altere a propriedade caption


do botão para numerar.

2ºPasso: Em seguida, dê um duplo clique no seu botão e escreva:

Cells(5, 2) = 23

Nesta linha de comando temos a representação das células através de linhas e colunas, observe que o
nosso comando é Cells(5,2) onde o 5 representa a linha e o 2 representa as colunas, execute o programa
e veja:

Coluna 2

Linha 5

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
83
EXCEL COM VBA – Autoria (Família Carielo)

Podemos também inserir textos, para isso, devemos colocar o mesmo entre aspas, na linha de comando
onde temos Cells(5,2) = 23 apague o 23 e escreva “Leiaut” entre aspas para indicar que é um texto, depois
execute o programa.

Observe, na mesma linha e coluna porém texto.

ALTERANDO CARACTERÍSTICAS DO EXCEL

É possível alterar como o excel se refere as células exibindo apenas linhas e colunas em vez de letras e
linhas.

1ºPasso: No menu arquivo, selecione opções do Excel e em seguida, clique em fórmulas lado esquerdo.

Clique aqui

2ºPasso: Ao lado direito temos um quadro com várias opções procure pela opção “Estilo de referência
L1C1” e marque esta opção.

1ºClique aqui

2ºClique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
84
EXCEL COM VBA – Autoria (Família Carielo)

3ºPasso: Observe como deverá ficar a área de trabalho do seu excel.

Agora, sabemos a numeração de cada coluna, o que irá ajuda quando estivermos usando o
comando Cells(), visto que neste comando não podemos inserir os nomes das células EX:
A1,B2. Apenas os endereços das células referentes ao numero da linha e coluna.

4ºPasso: Volte para a área de programação do seu botão.

5ºPasso: Agora vamos usar o laço para facilitar alguns trabalhos, no mesmo userform apague a nossa linha
de comando Cells (5,2) = “Leiaut”, e dessa vez escreva a seguinte linha de comando:

For i = 1 to 10

Cells (i, 1) = i

Next i

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
85
EXCEL COM VBA – Autoria (Família Carielo)

6ºPasso: Aqui estamos usando o laço para numerar todas as linhas de 1 até 10, execute o programa e
observe.

Com isso, podemos numerar quantas linhas e colunas quisermos ou precisarmos, podemos
fazer o mesmo para texto.

NEXT COM STEP

Next com step, é um incremento que o laço insere na contagem. Na contagem natural temos incremento
1 pois contamos 1+1 = 2, 2+1, 3+1 etc.. mas, se incluirmos o incremento 2 a contagem seria 1+2 = 3,
3+2 = 5, 5+2 = 7 e assim por diante, agora vamos testar no excel

1ºPasso: Você poderá fazer esse programa no mesmo formulário de antes, apenas deixe todo o código da
seguinte maneira:

For i = 1 To 20 Step 3

Cells(i, 1) = i

Next i

Temos um incremento de 3

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
86
EXCEL COM VBA – Autoria (Família Carielo)

VARIÁVEIS EM CÉLULAS

Trabalharemos agora com variáveis, cujos valores podem vir de células do excel e também ir para células,
como vimos anteriormente temos o comando Cells(1,1) onde 1,1 é o endereço da célula, assim podemos
inserir dados nesse endereço a partir do VBA e também retirar dados usando a sintaxe:

A = Cells(3,1)

B = Cells(3,2)

Cells(3,3) = a+b

Vamos a prática:

1ºPasso: Abra o VBA e insira um UserForm e dentro do UserForm insira um botão, após isso nomeie o
Caption do UserForm e do botão para Teste.

2ºPasso: Dê um duplo clique no seu botão e escreva o algoritmo:

Dim a, b as Integer
A = Cells(3,1)
B = Cells(3,2)
Cells(3,3) = a+b

Ficando da seguinte maneira:

3ºPasso: Abra o excel e insira valor na célula (3,1) e (3,2).

Insira da seguinte
forma os seus valores

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
87
EXCEL COM VBA – Autoria (Família Carielo)

4ºPasso: Execute o seu programa no VBA, observe que a célula (3,3), será preenchida quando você clicar
em teste.

1ºClique aqui

2ºObserve seu
resultado aqui

COMANDO RANGE

Existe uma outra forma de definir variáveis a partir de células que é o comando Range(“Cel1”,[Cel2]), essa
é a sintaxe do comando. Range significa um intervalo entre dois pontos, que nesse caso seriam duas células
Cel1 e Cel2, para este comando devemos colocar o nome da célula a qual queremos trabalhar.

EX: Range(“cel1”) = 10

Vejamos um exemplo prático:

1ºPasso: Abra o VBA e insira um UserForm e dentro do UserForm insira um botão e altere o Caption da
janela e do botão para Teste conforme no exemplo anterior.

2ºPasso: Em seguida, dê um duplo clique no botão Teste e escreva a linha de comando:


Range(“C5”) = 450

Execute o algoritmo apertando F5 e veja:

Mesmo se o Excel estiver no modelo de referência L1C1(modelo que numera as colunas) o


comando Range(“C5”) irá funcionar.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
88
EXCEL COM VBA – Autoria (Família Carielo)

Se colocarmos a segunda célula no nosso range, o excel interpretará também todo intervalo de células
entre elas, vejamos um exemplo:

1ºPasso: Apague o algoritmo que escrevemos anteriormente e escreva o seguinte:

Range(“a1”,[c5]) = 10

O Comando deverá estar sempre nessa sintaxe a primeira célula entre aspas “” e a segunda
célula entre colchetes [] , não esquecer da virgula entre eles.

2ºPasso: Feito isso, execute o algoritmo e repare na pagina seguinte o seu funcionamento. Veja que todo
intervalo de células entre “a1”, e [c5] foi numerado.

PLANILHA DE CONSUMO DE ENERGIA

Agora iremos realizar uma planilha para calcular o consumo de energia de uma suposta casa, com preços
fictícios, somente para exemplo do nosso programa.

1ºPasso: Crie a seguinte planilha no excel:

Nesta célula insira a seguinte formula:


=MULT(k7;n7;q7)/1000 Nesta outra célula insira a
Onde k7;n7;q7 são as células correspondentes a formula:
Horas por dia, Dias por mês e Pontência, do =SOMA(T7;T9;T11;T13;T15)
primeiro aparelho da lista. Depois de feita a formula
copie-a para as células abaixo.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
89
EXCEL COM VBA – Autoria (Família Carielo)

2ºPasso: Agora na guia desenvolvedor no botão inserir insira o componente botão(controle de formulário)
na planilha onde estamos trabalhando logo abaixo da célula “Total”.

1ºClique aqui
2ºClique aqui

3ºPasso : Após inserir o botão na planilha do excel mude o texto do mesmo para Calcular custo final.

Edite o seu botão da


seguinte forma

DETERMINANDO CUSTOS A PARTIR DO CONSUMO

Agora vamos criar um programa no VBA para calcular o custo a partir do consumo que temos na planilha.

1ºPasso: Na guia desenvolvedor clique em Visual Basic.

Você poderá acessar o VBA


através da tecla de atalho (Alt
+ F11)

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
90
EXCEL COM VBA – Autoria (Família Carielo)

2ºPasso: Agora no menu inserir clique em UserForm e assim que o formulário for inserido clique no
titulo do mesmo e na propriedade caption escreva “Calcular”.

Observe o nome do seu FORM

3ºPasso: Agora no nosso programa insira um botão e um rótulo que se encontram na caixa de ferramentas
ao lado.

Rótulo, clique para selecionar e em


seguida clique no programa para inseri-lo.

Botão, clique para selecionar e em


seguida clique no programa para inseri-lo.

4ºPasso: Agora selecione o botão que acabamos de inserir clicando uma vez sobre ele e na propriedade
Caption escreva “Calcular”.

1. Clique uma vez para


selecionar o botão.

2.Escreva Calcular para


a propriedade caption.

5ºPasso: Na Propriedade Caption do label1 escreva “resultado”.

1. Clique uma vez sobre o label


para seleciona-lo.

2. Escreva no Caption
“Resultado”.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
91
EXCEL COM VBA – Autoria (Família Carielo)

6ºPasso: Agora, iremos inserir os comandos no nosso botão, o programa funcionará da seguinte maneira:

Primeiro nossa planilha irá calcular o consumo individual e total dos equipamentos, em seguida o nosso
programa irá calcular o preço de acordo com o consumo obtido na planilha.

O custo do consumo seguirá a seguinte tabela:

B1 - Residencial Baixa Renda


Consumo mensal inferior ou igual a 30 kWh 0,12259
Consumo mensal superior a 30 kWh e inferior ou igual a 100 kWh 0,21016
Consumo mensal superior a 100 kWh e inferior ou igual a 220 kWh 0,31523
Consumo mensal superior a 220 kWh 0,35026

Então teremos condições no nosso algoritmo.

Agora vamos verificar em que célula se encontra o total do consumo dos aparelhos.

Célula T17

Agora voltando ao VBA vamos finalizar nosso programa.

7ºPasso: Dê um duplo clique no botão calcular e escreva:

Dim cons As Double

cons = Range("t17") ‘Aqui estamos definindo que o valor da variável cons virá da célula t17

If cons <= 30 Then

Label1.Caption = FormatCurrency(cons * 0.12259)

ElseIf (cons > 30 And cons <= 100) Then

Label1.Caption = FormatCurrency(((cons - 30) * 0.21016) + 3.6777)

ElseIf (cons > 100 And cons <= 220) Then

Label1.Caption = FormatCurrency(((cons - 100) * 0.31523) + 18.3889)

Else: If (cons > 220) Then Label1.Caption = FormatCurrency(((cons - 220) * 0.35026) + 56.2165)

End If

Range("t19") = Label1.Caption ‘Aqui estamos fazendo com que os dados sejam exibidos na célula t19

Observe que usamos o comando FormatCurrency(), este serve para formatar a saída dos dados em
valores monetários, temos também outros tipos de formatação alguns são:

Format(2350, “##,##0.00”) ---- irá retornar -> 2,350.00

Format(2350, “Currency”) ---- irá retornar -> R$ 2,350.00

Format(0.50, “Percent”) ---- irá retornar -> 50.00%

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
92
EXCEL COM VBA – Autoria (Família Carielo)

As opções de formatação “FormatCurrency” e “FormatPercent” já fazem o papel de formatar tudo que


está entre os parênteses na expressão: FormatCurrency( ), FormatPercent( )

8ºPasso: Agora voltando para a planilha do excell clique com o botão direito do mouse em cima do
botão “Calcular custo final” que fizemos anteriormente e clique na opção Atribuir Macro, depois escreva
consumo para o nome da macro e clique em Novo.

1. Escreva Consumo para o


nome da macro 2. Clique aqui

9ºPasso: Agora irá abrir uma janela no VBA, escreva o comando UserForm1.show

Após a realização destes procedimentos, estará pronto o programa, em seguida volte na planilha e teste
se funcionou corretamente.

Exercício Aplicado ao VBA -8-

1º Faça um programa para calcular os descontos em relação ao salario de um funcionário os descontos


deverão seguir a seguinte regra: Descontar 8% INSS e 1% Refeição para salário abaixo de R$ 1399,12
Acima de R$ 1399,12 e abaixo de R$ 2331,88 descontar 9% INSS e 2% Refeição
Acima de R$ 2331,88 e abaixo de R$ 4663,75 descontar 11% INSS e 3% Refeição

Exemplo da planilha, os valores devem sair formatados em Porcentegem, e Moeda para o salário.

2º Faça um programa para simular uma conta poupança, pode ser uma função ou até mesmo uma
aplicação com interface gráfica no VBA.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
93
EXCEL COM VBA – Autoria (Família Carielo)

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
94
EXCEL COM VBA – Autoria (Família Carielo)

5ª Aula de Excel com VBA

SUB & FUNÇÕES

Estudaremos agora o funcionamento das subs e funções, seus processos, o que é possível fazer e seus
parâmetros, também iremos aprender como chamar uma sub em uma função.

A estrutura das subs possuem a seguinte sintaxe:

Sub exemplo(argumento1, argumento2, argumentoN)  Aqui temos a criação da sub

Argumento1 = b+c / argumento 2  Aqui temos o processamento dos dados

ArgumentoN = x  Processamento dos dados

End Sub  Fim da Sub

Os argumentos de uma Sub irão funcionar como variáveis uma vez declarados na criação de uma Sub
eles podem receber e processar valores.

Porém, para podermos visualizar o resultado do processamento desses dados é necessário chamar essa
Sub com o comando Call, esse comando chama uma Sub com valores específicos, veja no exemplo abaixo:

Call exemplo(12, 10, 4)

Ao darmos esse comando os valores 12, 10 e 4 serão introduzidos respectivamentes nos argumentos 1 2
e N.

Uma Sub sem argumentos é uma macro repare:

Sub abc()

Call exemplo(12,10,4)

End Sub

Nessa sub estamos chamando, outra Sub porém essa deve ser considerada macro já que não possui
argumentos, e podemos associa-la a um botão.

Repare que na janela para atribuir macros apenas nossa Sub sem argumentos aparece.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
95
EXCEL COM VBA – Autoria (Família Carielo)

FUNCTIONS

Uma function é uma formula no Excel onde podemos facilitar alguns cálculos, temos várias formulas no
excel porém se quisermos uma formula que faça um calculo especifico teremos de faze-la para isso veremos
as Functions que tem a seguinte sintaxe:

Function dta(a,b,c)
Dta = (((b)^2)-4*a*c)
End Function

Aqui temos uma fórmula para calcular Delta em uma equação, observe que temos os parâmetros a,b,c
que funcionarão como variáveis, diferente das Subs as funtions tem acesso direto as planilhas podendo
obter seu valor a partir de qualquer célula que o usuário escolher.

Podemos dar formatos de saída para os resultados e ainda exibir mensagems com o comando
MsgBox.

Agora, começaremos a desenvolver alguns exemplos práticos.

1ºPasso: Antes de tudo na aba desenvolvedor do Excel abra o Visual Basic.

Clique aqui

2ºPasso: Selecione o menu inserir, em seguida selecione a opção módulo.

1ºClique aqui

2ºClique aqui

3ºPasso: Em seguida, escreva o seguinte algoritmo.

Sub atm(a, b)

a = (a - 3) * 2
b = (a + 1) * 3
MsgBox (a + b)

End Sub

Observe o seu algoritmo, temos a sub atm com dois parâmetros. A e B, esses parâmetros irão funcionar
como variáveis onde irão receber um valor e logo abaixo o algoritmo irá processar o que deve ser feito com
esses parâmetros.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
96
EXCEL COM VBA – Autoria (Família Carielo)

4ºPasso: Abaixo do algoritmo anterior, escreva o seguinte algoritmo.

Sub c_atm()
call atm(4,7)
End Sub

Aqui acabamos de criar uma sub sem argumentos que é o mesmo que uma macro e nela chamamos a sub
atm com os valores 4 para A e 7 para B.

5ºPasso: Agora voltando na planilha do Excel na aba desenvolvedor, clique na opção inserir e depois no
botão de controle de formulário.

1ºClique aqui

2ºClique aqui

6ºPasso: Dê um clique na sua área de trabalho, observe que instantaneamente o seu botão irá aparecer,
juntamente com ele a opção de atribuir macro, selecione a opção c_atm e clique ok.

1ºClique aqui

2ºClique aqui

7ºPasso: Observe o seu botão na área de trabalho, em seguida, dê um clique no mesmo.

Clique aqui

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
97
EXCEL COM VBA – Autoria (Família Carielo)

8ºPasso: Ao clicar no botão aparecerá uma caixa de mensagem com o número 11 que é o resultado da
sub atm(a,b) em relação aos valores que inserimos na sub c_atm() quando usamos a expressão call
atm(4,7) os parâmetros a e b foram substituídos respectivamente por 4 e 7.

Observe a lógica do processamento de dados:

Valores a serem
atribuídos para os
Chamando a sub atm parâmetros a e b

CHAMANDO SUB & FUNCTIONS

Agora veremos como chamar uma sub em uma function que seria uma fórmula no excel.

1ºPasso: Escreva abaixo dos algoritmos que criamos, o seguiunte algoritmo:

Function test_atm()
Call c_atm
End Function

2ºPasso: Em seguida, em uma célula do excel digite a fórmula =test_atm() sem nenhum valor, pressione
enter e a planilha irá retornar um valor.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
98
EXCEL COM VBA – Autoria (Família Carielo)

ARRAYS

Array é um conjunto especial de variáveis que podem formar uma matriz, semelhante ao vetor no visualg
(portugol) com arrays é permitido criar “clones” de uma variável, dessa forma poderemos com uma única
variável armazemar vários valores, vejamos um exemplo da estrutura Array:

Dim i(5) as integer

Simplesmente com parênteses podemos atribuir a função Array para uma variável, aqui temos um Array
unidimensional pois só tem um parametro (5) caso fossem dois parâmetros seria da seguinte maneira (2,2)
vejamos um exemplo de como inserir dados em uma matriz unidimensional.

Exemplo: Se quisermos inserir mais de um dado numérico na variável i usaremos a seguinte sintaxe:

i(0) = 10
i(1) = 20
i(2) = 30
i(3) = 40
i(4) = 50
i(5) = 60

A mesma variável i porém com valores diferentes, a variável i agora se divide em 6 variáveis(começando
do 0) e para acessar basta digitar a variável seguida de seu parâmetro que deverá está entre parênteses.

Também podemos criar Arrays da seguinte maneira:

i = new integer(10) {}

EXERCÍCIO PRÁTICO ARRAYS

Vamos praticar para compreender melhor o assunto.

1ºPasso: Abra o VBA na aba desenvolvedor, e no menu inserir do VBA clique em UserForm para
inserirmos uma janela.

1ºClique aqui

2ºClique aqui

2ºPasso: Insira um botão e mude a propriedade Caption do botão e da janela para ‘’Teste’’.

2. Mude o
Caption do botão
e da janela

3ºPasso: Dê um duplo clique no botão Teste e escreva o seguinte algoritmo:

Dim numero(2) as Double


numero(1) = 5

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
99
EXCEL COM VBA – Autoria (Família Carielo)

numero(2) = 6
msgbox(numero(1)+numero(2))

Observe como foi simples, utilizamos a mesma variável (numero) para somar dois numeros, nesse
algoritmo temos a variável número como um array com um parâmetro e seu limite em 2, ou seja, podemos
inserir no máximo 3 dados diferentes nessa mesma variável(contando com 0), agora basta executar o
programa para testar aperte F5 e teste se funcionou corretamente.

4ºPasso: Execute o seu programa.

ARRAYS COM LAÇO DE REPETIÇÃO

Agora, criaremos um Array com laço para facilitar a inserção de dados, pois imagine se tivessemos que
inserir 50 palavras diferentes, precisariamos ainda assim escrever os parâmetros para cada variável
nome(1),nome(2),Nome(N) etc...

Para isso temos os laços de repetição que irão facilitar a automação desses parâmetros.

1ºPasso: Para começar, dê um duplo clique no botão Teste apague o algoritmo que escrevemos
anteriormente e escreva o seguinte algoritmo:

Dim x As Integer
Dim i(10) As String
For x = 1 To 10
i(x) = InputBox("Insira", "ola")
Next x
For x = 1 To 10
Cells(x, 3) = i(x)
Next x
Aqui utilizamos um laço de repetição e uma inputbox, o qual representa uma janela de mensagem, onde
pode ser inserido dados como em uma janela de questionamento, “insira” e “ola” são subtítulo e título da
inputbox.

Repare no algoritmo que temos x como uma variável do tipo inteira e que funcionará como laço de
contagem de 1 até 10, logo vemos que nos parâmetros da variável i não precisamos digitar cada parâmetro(
i(1) , i(2) , i(3) etc...) o próprio laço irá fazer isso para nós, por isso colocamos apenas i(x) onde x
representa a faixa de números de 1 até 10.

Logo mais, temos a saída dos dados que o usuário ira digitar nas células para isso usamos outro laço onde
a mesma variável X o representa, usamos o comando Cells onde especificamos as linhas e colunas na
planilha do Excel, logo temos Cells(x,3) onde x representa a linha que neste caso serão as linhas pois
como x é a variável do nosso laço de repetição e ele representa de 1 até 10 logo temos Cells(1-10 , 3).

Em seguida temos que Cells(x, 3) = i(x) Onde as células irão receber os valores armazenados
respectivamente na variável i de acordo com seus parâmetros que neste caso é x que representa de 1 até
10, logo teremos 10 valores ou dados listados em 10 linhas na planilha do excel.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
100
EXCEL COM VBA – Autoria (Família Carielo)

Execute o programa e confira:

Primeiro insira dez


nomes na inputbox.

Assim que tiver acabado


de inserir os nomes veja
que eles serão listados

Nesse algoritmo, economizamos 14 linhas de codigos por termos usado o laço.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
101
EXCEL COM VBA – Autoria (Família Carielo)

Exercício Aplicado ao VBA -9-

1º Faça uma calculadora que some, subtraia, multiplique, divida com apenas uma variável usando a
função Array.

Exemplo:

2º Faça um algoritmo que leia o nome de dez frutas e depois as reescreva na planilha do Excel em ordem
e devidamente numeradas.

Exemplo:

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
102
EXCEL COM VBA – Autoria (Família Carielo)

MATRIZ BIDIMENSIONAL
Trabalharemos com mais de um parâmetro para as matrizes, agora teremos uma variedade maior de
combinações e possibilidades, visto que antes poderíamos apenas armazenar dados em apenas 1
parâmetro, agora podemos fazer em diversas combinações.

Numero(3,3)  Aqui, possuímos uma variável bidimensional, observe que temos dois parâmetros
separados por virgula, dentro desses parâmetros e com os limites colocados aqui nesse exemplo, nossa
variável poderá se dividir em x partes repare.

Numero(0,0) | Numero(0,1) | Numero(0,2) | Numero(0,3)

Numero(1,0) | Numero(1,1) | Numero(1,2) | Numero(1,3)

Numero(2,0) | Numero(2,1) | Numero(2,2) | Numero(2,3)

Numero(3,0) | Numero(3,1) | Numero(3,2) | Numero(3,3)

Veja a quantidade de possibilidades que temos com uma matriz bidimensional, a declaração é a mesma
que usamos para a matriz unidimensional  Dim Numero(3,3) as Integer

Poderiamos até fazer uma matriz, observe o algoritmo:

Sub test()
Dim i(2, 2) As Integer
i(0, 0) = 1
i(0, 1) = 2
i(0, 2) = 3
Aqui estamos definindo
i(1, 0) = 4
i(1, 1) = 5 um valor para a variável i
i(1, 2) = 6 em todos os seus
i(2, 0) = 7 parâmetros.
i(2, 1) = 8
i(2, 2) = 9
Range("b20") = i(0, 0)
Range("c20") = i(0, 1)
Range("d20") = i(0, 2)
Aqui estamos retornando
Range("b21") = i(1, 0) o valor nas células.
Range("c21") = i(1, 1)
Range("d21") = i(1, 2)

Range("b22") = i(2, 0)
Range("c22") = i(2, 1)
Range("d22") = i(2, 2)
End Sub
O resultado desse algoritmo é esse:

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
103
EXCEL COM VBA – Autoria (Família Carielo)

É tudo o que esse algoritmo vai fazer.

No entando é essa função de algoritmo que iremos usar quando estivermos trabalhando com uma grande
quantidade de variáveis, observe que agora temos 2 parametros e separados por virgula por isso a sintaxe
 i(0, 0)

Agora vamos para um exemplo com laço. Nesse exemplo temos 10 alunos de uma escola com 4 notas cada
aluno, e precisamos fazer um programa para cadastrar esses alunos de forma organizada.

1ºPasso: Na aba Desenvolvedor no botão inserir selecione o componente botão de formulário e insira no
canto inferior direito da nossa planilha.

1. Clique aqui

2. Clique aqui

2ºPasso: Quando surgir uma janela pedindo para atribuir uma macro, clique em Cancelar.

SUB PARA ALGORITMO DE CADASTRO


Agora, iremos criar uma sub para o algoritmo de cadastro dos alunos na planilha.

1ºPasso: Abra o VBA e ao lado esquerdo onde está a estrutura do projeto, clique com o botão direito do
mouse em cima da pasta de trabalho atual e depois clique em Exibir Código.

1. Clique com o botão direito

2. Clique aqui

2ºPasso: Em seguida, escreva o seguinte algoritmo.

Sub cadastro()
Dim nome(10) As String
Dim notas(10, 4) As Double

For x = 1 To 10
nome(x) = InputBox("Insira o nome do " & x & "º aluno", "Cadastro")
For y = 1 To 4
notas(x, y) = InputBox("Insira a " & y & "º nota do aluno " & nome(x), " Notas ")
Next y
Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
104
EXCEL COM VBA – Autoria (Família Carielo)

Next x

For x = 1 To 10
Cells(x, 3) = nome(x)
Z=0
For y = 4 To 7
Z=Z+1
Cells(x, y) = notas(x, Z)
Next y
Next x

End Sub

Explicando as linhas:

Aqui, possuimos a criação da Sub e a declaração das variáveis com


Array, repare que temos Array de um parâmetro para a variável
nome(caracter) que é do tipo String(texto).

E para a variável notas que é do tipo Double, possuimos dois parâmetros: utilazaremos o primeiro
parâmetro para representar as linhas, pois iremos listar os alunos verticalmente e as notas, faremos uma
matriz que terá 4 colunas de acordo com nossos parâmetros declarados aqui.

No exemplo abaixo, possuímos um laço para representar os valores dos parâmetros das nossas variáveis
com função Array, repare que estamos usando x para representar as linhas e y as colunas, usamos uma
inputbox para obter os valores.

Observe, estamos retornando os valores digitados


nas células, repare que temos uma peculiaridade
aqui a qual deveremos ter cuidado ao retornar
dados na planilha do excel quando estivermos
trabalhando com laço e Array.

Para listar os nomes na planilha usamos apenas o


comando Cells(x,3 ) = nome(x) onde x representa
números inteiros de 1 até 10.

Porém, para listar as notas é diferente já que o


comando Cells é preciso declarar o endereço das células na sintaxe: Numero_da_linha , Numero_da_Coluna
mas queremos listar os nomes e notas a partir da 4º coluna (D) a configuração do comando Cell neste caso
é Cells(x,y) onde y deverá ser uma variável em um laço que representa um número inteiro de 4 até 7.

Porém em notas temos a seguinte configuração notas(x,z) onde z deverá ser um número que represente
de 1 até 4 pois nossa variável notas está configurada na função Array com os parâmetros (10,4), por isso
temos logo abaixo do segundo laço a expressão Z = Z+1 e antes de entrar no segundo laço temos : Z = 0
assim quando o computador executar o algoritmo ele irá interpretar que z = 0

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
105
EXCEL COM VBA – Autoria (Família Carielo)

Assim que estiver entrando no segundo laço, e dentro do segundo laço temos outro laço ainda que é
representado pela expressão lógica Z = Z+1 onde o algoritmo irá somar Z+1 dentro do laço y que rodará
4 vezes.

Assim nossa expressão notas(10,4) poderá ser retornada por completo juntamente com os nomes dos
alunos, observe um pouco mais:

Y aqui representa nosso laço


que vai de 4 até 7, fazendo
com que o endereço da célula
em relação a coluna começe
em 4.

Veja que Z está sendo somada a +1 de acordo


com a excução do laço já que o laço y é
executado 4 vezes logo z vale de 1 até 4. E logo
mais temos a nossa variável nota(x,z) onde z
será sempre um valor de 1 até 4 pois assim que
o computador sai do laço a variável Z é zerada.

3ºPasso: Voltando a planilha do Excel vamos associar a Sub que acabamos de criar ao botão que tínhamos
adicionado antes, agora na planilha do Excel clique com o botão direito do mouse em cima do botão e
depois clique em Atribuir macro.

1. Clique com o botão


direito, depois em atribuir
macro...

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
106
EXCEL COM VBA – Autoria (Família Carielo)

2. Depois selecione a macro


cadastro, e clique em OK.

Se preferir, renomeie o botão para Cadastro clicando com o botão direito do mouse em cima do mesmo e
escolhendo a opção renomear, depois basta escrever.

Agora clique no botão para testarmos o algoritmo que fizemos e preencha todos os dados pedidos na tela.

Atenção na hora de inserir os dados, repare que o programa pedirá um nome e 4 notas sempre
nessa ordem até completar os 10 alunos, pois se você digitar um nome quando for pedido uma
nota o programa resultará em erro e irá recomeçar.

O resultado final é esse:

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
107
EXCEL COM VBA – Autoria (Família Carielo)

Exercício Aplicado ao VBA -10-

1º Faça um algoritmo para cadastrar 10 frutas e seus preços e depois faça com que o algoritmo liste as
10 frutas em ordem e numeradas na planilha e com os preços de acordo.

Você pode formatar a saída em valor monetário com o comando


FormatCurrency.

2º Faça um algoritmo para cadastrar nomes e CPF fictícios de 5 pessoas, e os liste na planilha do excel
conforme o exemplo na seguinte página:

Se desejar que o formato de saída seja o formato do CPF use o


comando  Format(“000””.””000””.””000””-“00”)

O comando Format formata em qualquer formato, basta separar o


formato ideal entre aspas.

CÁLCULOS COM MATRIZES


Agora veremos como ainda podemos efetuar outros tipos de cálculos usando matrizes e laços de repetição
com condições.

No mesmo algoritmo anterior que fizemos para cadastrar os alunos com suas notas vamos fazer agora com
que esse mesmo algoritmo calcule as médias dos alunos e em seguida retorne Aprovado ou Reprovado.

Porém nesse algoritmo iremos dividir as parted dos códigos por etapa a saber:

Variáveis
Entrada
Médias
Saída

Assim fica mais fácil o entendimento do algoritmo e até se desejarmos fazer alterações já iremos saber
que que parte do algoritmo modificar.

Se preferir poderá apenas alterar o algoritmo anterior inserindo as linhas de programação que faltam, ou
poderá refazer de novo de acordo com os passos que executaremos aqui.

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
108
EXCEL COM VBA – Autoria (Família Carielo)

1ºPasso: Vamos começar comas variáveis, na aba desenvolvedor abra o VBA e siga os passos abaixo:

Clique com o botão 2ºClique aqui.


direito.

2ºPasso: Declarando as variáveis: assim que a janela de códigos abrir crie a Sub Cadastro e declare as
seguinte variáveis:

Dim nome(3) As String


Dim notas(3, 4) As Double
Dim media(3) As Double

3ºPasso: Agora ao algoritmo que irá receber os dados de entrada, escreva logo abaixo do algoritmo
anterior:

'Entrada
For x = 1 To 3
nome(x) = InputBox("Insira o nome do " & x & "º aluno", "Cadastro")
For y = 1 To 4
notas(x, y) = InputBox("Insira a " & y & "º nota do aluno " & nome(x), " Notas ")
Next y
Next x
'Entrada

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
109
EXCEL COM VBA – Autoria (Família Carielo)

4ºPasso: Agora definiremos o algoritmo que irá processar os dados, ou seja calcular a média:

'Medias
For h = 1 To 3
media(h) = (notas(h, 1) + notas(h, 2) + notas(h, 3) + notas(h, 4)) / 4
Cells(h, 9) = "Média :"

If media(h) < 7 Then

Cells(h, 12) = "Reprovado"


Else: Cells(h, 12) = "Aprovado"
End If
Cells(h, 10) = media(h)
Next h
'Medias

Repare na seguinte linha: media(h) = (notas(h, 1) + notas(h, 2) + notas(h, 3) + notas(h, 4)) / 4


Nesta linha precisamos especificar os endereços em relação ao segundo parâmetro da função da matriz
pois é preciso somar as 4 notas, logo as 4 notas de um mesmo aluno estão armazenadas no segundo
parâmetro da nossa variável média com a função de Array.

Temos também a variável média(3) pois já que temos 3 alunos apenas nesse algoritmo teremos apenas
3 medias. Usamos aqui a letra h para representar esse laço.

Repare nas linhas :


Cells(h, 9) = "Média :"

If media(h) < 7 Then

Cells(h, 12) = "Reprovado"


Else: Cells(h, 12) = "Aprovado"
End If
Cells(h, 10) = media(h)

Essas linhas de algoritmo também estão atuando na saída dos dados mas só em relação as médias já que
estão programadas apenas para retornar Aprovado ou Reprovado de acordo com a média calculada pelo
mesmo algoritmo, que também retornará o valor obtido no calculo das médias.

Confira como está ate agora nosso algoritmo:

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
110
EXCEL COM VBA – Autoria (Família Carielo)

5ºPasso: Agora iremos para a parte final: A saída dos dados, logo abaixo do algoritmo anterior(medias)
continue escrevendo o seguinte algoritmo:

'Saída
For x = 1 To 3
Cells(x, 3) = nome(x)
Z=0
For y = 4 To 7
Z=Z+1
Cells(x, y) = notas(x, Z)
Next y
Next x
'Saída
End Sub

6ºPasso: Execute o algoritmo Pressionando F5 e preencha os dados que o programa irá pedir na tela:

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
111
EXCEL COM VBA – Autoria (Família Carielo)

7ºPasso: Veja o Resultado:

Integral Cursos
Rua Djalma Dutra, 147 | Caruaru - PE
Contato: 9 9284-6344 | 9 9339-5004
112

Você também pode gostar