SlideShare uma empresa Scribd logo
1
MINICURSO DE VBA
2
UNIVERSIDADE FEDERAL DO PARANÁ
SETOR DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA QUÍMICA
PET – PROGRAMA DE EDUCAÇÃO TUTORIAL
MINICURSO DE VBA
2020/01
GRUPO PET ENGENHARIA QUÍMICA
Ana Carla Corrêa Machado
Andreas Schwambach
Bruna Derlan
Bruna da Rosa Meller
Edson Yuji Suzuki
Fernanda Dias Couto
Guilherme Frasato Bastos
Luana Aparecida Pereira
Lucas Godinho Cassemiro Correa
Luís Felipe Bavati Medri
Marcelo Luis Hostins Filho
Marco Andrey Salle Filho
Maryna Bornemann da Silva
Paulo Vitor de Lima Carvalho
TUTOR
Prof. Dr. Carlos Alberto Ubirajara Gontarski
Curitiba
2020
3
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/1
UNIVERSIDADE FEDERAL DO PARANÁ
GRUPO PET ENGENHARIA QUÍMICA
1ª Edição - 2014/02
Guilherme Augusto Silva Surek
Marcelo Yuji Tamura
Edições posteriores
Beatriz Fernanda Rossin
Gabriel Souza Bonaroski
Geovana Mara Cieslinski
Guilherme Augusto da Silva Surek
Larissa Brunetta Guzzi Pedro
Luís Felipe Mendes Bussola
Marcelo Yuji Tamura
Pedro Henrique Bonato Kuss
Thiago Nishimura
Thomas Gabriel Balduíno
Reckelberg
Victor Matheus Mahl
Revisão final
Ana Carla Corrêa Machado
Bruna Derlan
Guilherme Frasato Bastos
Marco Andrey Salle Filho
4
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Sumário
1 ................................................................................................................................................. 5
1. MACROS .............................................................................................................................................. 5
1.1. COMO CRIAR UMA MACRO ..................................................................................................... 5
1.2. COMO HABILITAR A GUIA DESENVOLVEDOR NO SEU OFFICE .................................................. 5
1.3. EXERCÍCIOS .............................................................................................................................. 7
CAPÍTULO 2 ................................................................................................................................................15
2. APLICAÇÃO DE MACROS E FUNÇÕES ..................................................................................................15
2.1. EXERCÍCIOS .............................................................................................................................15
CAPÍTULO 3 ................................................................................................................................................36
3. A PROGRAMAÇÃO EM VBA ................................................................................................................36
3.1. O EDITOR DO VBA...................................................................................................................36
3.2. INTRODUÇÃO À FUNÇÕES NO VBA .........................................................................................37
3.3. DECLARANDO VARIÁVEIS........................................................................................................39
3.4. EXPRESSÕES ARITIMÉTICAS, LÓGICAS E COMPARATIVAS .......................................................39
3.5. ESTRUTURAS DE CONTROLE....................................................................................................40
3.6. ESTRUTURA DO... LOOP ..........................................................................................................42
3.7. ESTRUTURA DO FOR... NEXT ...................................................................................................43
3.8. EXERCÍCIOS .............................................................................................................................44
CAPÍTULO 4 ................................................................................................................................................46
4. USERFORMS E SUB-ROTINAS..............................................................................................................46
4.1. USERFORMS............................................................................................................................46
4.2. ORIENTAÇÃO AO OBJETO........................................................................................................47
4.3. SUB-ROTINAS..........................................................................................................................48
4.4. VETORES E MATRIZES..............................................................................................................48
4.5. EXERCÍCIOS .............................................................................................................................50
REFERÊNCIAS BIBILIOGRÁFICAS .................................................................................................................70
5
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
MACROS
Uma macro é uma sequência de comandos (cliques de mouse ou toques de teclado) que são gravados em um
Módulo VBA e podem ser executados sempre que necessário. A grande vantagem de gravarmos uma sequência de
comandos é que poderemos utilizá-la posteriormente e para isso basta executar a macro na qual foi gravada a
sequência de comandos. As macros são uma excelente opção para automatizar tarefas repetitivas.
1.1. COMO CRIAR UMA MACRO
Com o uso de macros temos um ganho de produtividade considerável ao evitar que tenhamos que executar
manualmente os diversos passos de uma tarefa.
Existem duas maneiras distintas para a criação de uma macro:
1. Gravador de macros:
Nesse caso, o Excel grava cada uma das ações que farão parte da Macro e transforma essas ações nos comandos
VBA equivalentes. Quando a macro for executada, os comandos VBA é que serão efetivamente executados, pois cada
comando VBA corresponde a uma ação efetiva da macro.
2. Uso do VBA:
A partir do momento em que você domina a linguagem VBA, poderá criar a macro digitando os comandos VBA
necessários. Isso é feito usando o Editor de VBA, conforme veremos nas próximas lições.
1.2. COMO HABILITAR A GUIA DESENVOLVEDOR NO SEU OFFICE
A Guia Desenvolvedor é a responsável por nos mostrar as ferramentas de VBA dentro do Excel e para podermos
utilizá-la, às vezes, precisamos primeiro, habilitá-la.
Para a versão 2007:
1. Clique no Botão Office no canto superior esquerdo;
Figura 1 – Botão office para versão 2007
2. Em seguida clique em Opções do Excel;
Figura 2 – Opções do Excel para a versão 2007
3. Na tela que abriu, selecione a aba Mais Usados e marque a opção Mostrar guia Desenvolvedor na Faixa de
Opções;
6
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Figura 3 – Habilitar desenvolvedor na versão 2007
4. Para finalizar clique em OK.
Para as versões mais atuais como 2010, 2013 e 2016:
1. Vá a guia arquivo do office em que deseja começar sua macro;
Figura 4 – Botão arquivo nas versões 2010 e 2013
2. Selecione Opções;
Figura 5 – Botão opções nas versões 2010 e 2013
3. Agora selecione Personalizar faixa de opções;
Figura 6 – Opção "Personalizar Faixa de Opções"
4. Duas colunas serão abertas. Na coluna da esquerda habilite a opção Desenvolvedor.
7
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Figura 7 – Opção "Desenvolvedor"
Dessa maneira, a guia Desenvolvedor estará disponível na pasta de trabalho.
1.3. EXERCÍCIOS
Exercício 1.1. Este exercício possui o objetivo de ensinar o usuário a criar as suas primeiras macros. Siga os
passos a seguir.
1. Abra a Pasta de Trabalho Exercício 1.1;
2. Selecione a célula A1;
3. Entre na guia Desenvolvedor, no menu Código e escolha Gravar Macro;
Figura 8 – Interface do grupo código do Desenvolvedor
Figura 9 – Gravação da macro
4. Esta tela serve para identificação da Macro que iremos criar;
a) No campo Nome da macro devemos escrever um nome sem conter espaços vazios. Neste exemplo daremos
o nome de MinhaPrimeiraMacro;
b) O campo Tecla de atalho serve para nomear um comando de atalho para execução da sua macro, neste
campo digite i (minúscula);
8
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
c) O campo Armazenar macro em serve para indicar onde será armazenada a macro que está sendo criada:
i. Pasta de trabalho pessoal de macros: Você salvará a macro em seu computador e poderá
usá-la em qualquer pasta de trabalho do Excel. A macro será gravada na pasta do Excel de
nome Personal.xlsb;
ii. Nova pasta de trabalho: A macro poderá ser usada em todas as novas pastas de trabalho
criadas depois desta;
iii. Esta pasta de trabalho: A macro só poderá ser utilizada nesta pasta de trabalho;
d) Selecione a opção Esta pasta de trabalho;
e) O campo Descrição serve para em um breve parágrafo você identificar a utilidade da macro para caso alguém
ou você mesmo que irá utilizá-la futuramente saiba seu funcionamento;
f) Escreva o seguinte: Esta macro serviu para me ensinar a gravar macros.
5. Em seguida clique em OK.
6. Agora faça exatamente o que for pedido, pois tudo que fizer será gravado pela macro. Escreva na célula que está
selecionada: “Essa macro não serve para nada”
7. Pressione a tecla Enter. Em seguida, pressione o botão Parar gravação.
Figura 10 – Botão Parar gravação
8. Agora vamos executar a macro que criamos. Apague o conteúdo da célula A1 e selecione-a. Primeiro iremos
utilizar a tecla de atalho que digitamos: Segure CTRL e pressione i. Apague novamente o conteúdo da célula
A1 e selecione-a. Se você esquecer qual foi o atalho que você criou para executar sua macro, vá ao menu
Código na guia Desenvolvedor e selecione Macros. Na janela que se abriu, selecione a macro
MinhaPrimeiraMacro e clique no botão Executar.
9. Clique novamente em Macros, selecione a macro MinhaPrimeiraMacro e clique em Editar. Essa é a tela do
Visual Basic, a qual apresenta o código da macro que criamos. Além disso, nela podemos criar macros
diretamente a partir de códigos, pois toda macro seja ela gerada pelo gravador ou escrita é um código, o qual é
uma série de comandos que serão executados pelo Excel para atingir o objetivo pelo qual a macro foi gerada.
Dessa maneira, o código gerado é o seguinte:
Sub MinhaPrimeiraMacro()
'
' MinhaPrimeiraMacro Macro
Essa macro me ensinou a fazer macros
'
'Atalho do teclado: Ctrl+i
'
Range (“A1”) .Select
ActiveCell.FormulaR1C1 = “Essa macro não serve para nada”
Range (“A2”) .Select
End Sub
9
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Na primeira linha temos: Sub MinhaPrimeiraMacro ().
O termo sub indica o início de uma sub-rotina, no caso, de nossa macro e MinhaPrimeiraMacro é o nome
desta macro. Nas demais linhas iniciadas com apóstrofe simples e em verde estão as características digitadas na
tela de início da gravação da macro, tais como Nome, Descrição e Tecla de Atalho.
Nas demais linhas seguintes em preto temos o código da macro, o procedimento que será executado pelo
Excel. Nossa primeira ação foi digitar “Essa macro não serve para nada”, então foi gravado o seguinte código:
ActiveCell.FormulaR1C1 = " Essa macro não serve para nada ".
Um dos modos principais que o Visual Basic funciona é especificando um objeto e daí então uma ação
a ser imposta ao objeto. É por isso que o Visual Basic é chamado de linguagem orientada ao objeto.
ActiveCell é um objeto, a célula ativa. O Excel precisa trabalhar com itens os quais ele conheça, ou seja, seus
objetos, tais como Planilhas, Células, Pastas etc. Então quando queremos efetuar uma ação precisamos definir em
qual objeto será feito esta.
Em seguida tem um ponto seguido de FormulaR1C1 que se refere aoconteúdo doobjeto selecionado, cujo qual
define a ação. Depois = seguido de “Essa macro não serve para nada”, ou seja, estamos fazendo uma atribuição ao
conteúdo do objeto. Algumas ações requerem uma atribuição, por exemplo, definir o conteúdo de uma célula ou definir
o valor de uma variável.
Portanto estamos atribuindo a frase ao conteúdo da célula ativa.
Na próxima linha temos: Range("A2"). Select que foi referente ao Enter que teclamos após digitar a frase.
Range () também é um objeto, que pode ser uma célula ou um intervalo de células. Ponto e Select é a ação a ser feita
com o objeto. Então temos: Selecionar a Célula A2, que foi o que fizemos ao teclar Enter.
Observação: Perceba que o Excel entendeu o Enter por um comando de seleção da célula A2 e não como ir
para a célula abaixo da célula ativa, quando gravamos uma macro desta forma o Excel grava as referências das células e
não o comando em si. No caso ele gravou a célula e não o comando ir para baixo, por assim dizer.
Por fim, o comando End sub indicará ao Excel que o código de sua macro acaba aqui.
10. Agora clique em outra célula e execute a macro novamente. Perceba que independente da célula que você
selecionar, o Excel sempre terminará selecionando a célula A2, como vimos no código da macro.
11. Para fazer com que depois de escrever o conteúdo na célula o Excel selecione a célula diretamente abaixo da
célula ativa vamos gravar outra macro.
12. Limpe a área de trabalho e clique no botão Gravar Macro.
13. Nome da Macro: MinhaSegundaMacro. Tecla de Atalho: o (minúsculo). Armazenar em: Esta pasta de trabalho.
14. Clique na opção Usar Referências Relativas e, note que ela fica selecionada, ou seja é uma opção que “liga e
desliga”.
15. Escreva na célula ativa: Esta macro utiliza Referência Relativa., em seguida, pressione Enter.
16. Clique em Parar Gravação.
17. Agora, vamos executar a segunda macro para ver a diferença. Perceba como essa macro adiciona um texto à
célula ativa e depois seleciona a célula diretamente abaixo dela. Veremos adiante como essa ferramenta é útil.
Exercício 1.2. Carlos quer controlar seu saldo bancário através de uma planilha do Excel, ao invés de sempre
tirar o extrato no banco. Então, vamos criar uma macro que facilite esse processo para Carlos. Ele preparou
uma tabela para colocar a Entrada e Saída de dinheiro em sua conta, a data dessas movimentações e o saldo
remanescente.
Figura 11 – Tabelas do exercício 2
10
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
1. Abra a pasta de trabalho Exercício 1.2. Carlos preparou uma tabela para colocar a entrada e saída de dinheiro
em sua conta, a data dessas movimentações e o saldo remanescente.
2. Vamos fazer uma macro que automatize o processo de colocar os dados na tabela e calcular o saldo final. Inicie
a gravação. Outra forma de iniciar a gravação da macro é pelo botão situado na barra inferior do Excel.
Figura 12 – Botão para iniciar gravação de macros
3. Agora vamos ordenar a célula da data, para que Carlos não precise corrigi-la toda vez que quiser fazer um novo
lançamento. Vamos utilizar uma função do Excel chamada HOJE(), para inserir uma função teclamos = e depois
escrevemos o nome da função, enquanto você escreve o nome da função o Excel já disponibiliza para você todas
as funções disponíveis que começam com aquelas iniciais. Para selecionar a função é só pressionar a tecla TAB.
O Excel também disponibiliza uma breve descrição do que aquela função faz. A função HOJE() copia a data do
seu computador na célula selecionada e a formata como data.
Figura 13 – Inserção da função "Hoje"
4. Então podemos começar a gravar a macro. O Nome da Macro será CalcularSaldo, a Tecla de Atalho será y
(minúsculo). Armazenar macro: nesta pasta de trabalho. Descrição: automatização do controle financeiro de
Carlos.
5. Vamos começar selecionando as informações da primeira tabela, essa primeira tabela só serve para inserir os
dados, depois de executada a macro irá transferir esses dados para a segunda tabela e a primeira ficará em
branco para que a próximamovimentação seja inserida. Com as células B7:D7 selecionadas copiamos o conteúdo
delas pressionando Crtl+C e clicamos na célula B9.
6. Em seguida vamos no friso Desenvolvedor e clicamos na opção Usar Referências Relativas. Repare que a opção
ficou selecionada, ou seja, é uma opção que “liga e desliga”. Pressione a seta para baixo novamente.
7. Agora segurando CTRL pressionamos a seta para baixo, esse comando fará com que o Excel percorra a coluna
da célula ativa até encontrar a última célula com conteúdo. Se a célula selecionada estivesse vazia, o Excel iria
percorrer a coluna até encontrar a primeira célula com conteúdo. Outra maneira de realizar esse comando é
pressionar a tecla End e depois pressionar a direção na qual você deseja ir, no caso do exercício, para baixo. A
ferramenta Usar Referência Relativa serve para o Excel não gravar a célula em si, mas sim os comandos que você
usou, ou seja, ao invés de ele gravar selecionar a célula B9, quando apertou a seta para a baixo, ele gravará
selecionar a célula abaixo da célula ativa.
8. Estando a célula B11 selecionada, vamos usar a opção do Excel Colar Especial, escolhendo a opção Valores e
Formatação de Número. Dessa forma o Excel não vai copiar a fórmula HOJE() da Data, mas somente o valor da
data, mantendo a formatação da célula em data.
9. Agora, com a opção Usar Referências Relativas ainda selecionada, pressionamos a tecla seta para a direita três
vezes, deixando a célula E11 como célula ativa. Podemos desativar a opção Usar Referências Relativas.
10. Agora, vamos fazer uma fórmula para calcular o saldo final, pressionamos a tecla = e selecionamos a célula do
saldo anterior (E10), mais a entrada (C11) menos a saída de dinheiro (D11). Clicando Enter o Excel calcula o valor
do saldo final.
11. Então, só falta limpar a primeira tabela. Selecionamos C7:D7 e pressionamos a tecla Delete para deletar seu
conteúdo. A macro está pronta, podemos parar a gravação.
12. Coloque outros valores de entrada e saída para executar a macro, e note que mesmo se uma das células estiver
em branco a macro funciona normalmente.
11
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Exercício 1.3. Crie uma macro chamada Agenda que copie os dados de uma pessoa da primeira tabela e
cole na tabela abaixo e, além disso, a macro deve classificar os contatos existentes em ordem alfabética.
1. O passo a passo do exercício é muito semelhante ao do exercício 2, com a diferença de ter que ordenar as linhas
por sequência alfabética. Assim, os passos abaixo orientam apenas a resolução a partir do momento em que as
linhas são ordenadas.
2. Após as informações de nome, e-mail e telefone serem coladas, o botão de referência relativa deve ser
desativado.
3. Toda a tabela, representando a matriz I6:K50 deve ser selecionada.
4. No friso Página inicial no grupo Edição, deve-se clicar na opção Classificar e Filtrar, selecionando a opção
Classificar de A a Z.
Figura 14 – Opção "Classificar e Filtrar"
5. Após isso, os conteúdos das células I3:K3 podem ser deletados para que uma nova entrada possa ser digitada.
6. Com isso, a gravação da macro pode ser encerrada.
7. Insira novos dados e teste a macro.
Exercício 1.4. Você é funcionário de uma empresa e preparou uma planilha com os lançamentos
financeiros desse ano, no entanto, seu chefe não gostou da formatação da planilha e solicitou que você
elaborasse uma macro com as seguintes mudanças:
a. Os meses devem estar em itálico, centralizados e com fundo transparente.
b. Os dados financeiros devem estar em exibição no modo "moeda".
c. O título deve ser mesclado e centralizado, em negrito, branco e com fundo azul petróleo escuro, texto 2.
d. As células Mês, Entrada, Saída e Lucro devem estar em negrito, preta, centralizadas e com fundo azul petróleo
escuro, texto 2, mais claro 80%.
e. Todas as células devem estar contornadas com espessura normal, cor da linha: branco, plano de fundo 1, mais
escuro 25%.
Assim, sua macro deve ser capaz de formatar todas as antigas planilhas de lançamentos também, com todas no mesmo
padrão.
Figura 15 – Tabela do exercício 4
1. Abra a pasta de trabalho Exercício 1.4. Na pasta, existe uma tabela com os lançamentos financeiros mensais, a
qual deve ser configurada e formatada para melhor visualização, além das tabelas antigas de lançamento
financeiro.
12
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
2. No grupo código da guia Desenvolvedor clique em Usar Referências Relativas, clique na célula B12 e em seguida
em Gravar Macro. O Nome poderá ser FormatarTabela, ativada pelo atalho Ctrl+Shift+f, e a descrição será Essa
macro serve para formatar tabelas.
3. A partir disso, com o comando no teclado, aperte quatro vezes a seta para baixo, de forma a parar na célula
B16. Com o comando Ctrl+Shift+Seta para baixo selecione as células B16:B19 (meses), na guia Página Inicial nos
grupos Fonte e Alinhamento clique nas opções itálico, centralizar e deixe o fundo como está (transparente).
Figura 16 – Itálico e Centralizar selecionados
4. Aperte uma vez a seta para a direita, efetue o comando Ctrl+Shift+Seta para direita e em seguida
Ctrl+Shift+Seta para baixo de forma a selecionar todos os valores de entrada, saída e lucro e mude a exibição
para a forma de Moeda no grupo Número.
Figura 17 – Exibição na forma "Moeda"
5. Apertando a seta para cima duas vezes e em seguida a seta para a direita duas vezes, selecionando a célula E14,
para então selecionar todo o título com o comando Ctrl+Shift+Seta para esquerda. Então clique na opção
Mesclar e Centralizar em Alinhamento, deixe a escrita em negrito, branca e o fundo azul petróleo escuro, texto
2.
Figura 18 – Título da tabela
6. Apertando seta para baixo e em seguida Ctrl+Shift+Seta para esquerda, selecione as células B15:E15 e centralize
os textos, deixe o texto em negrito e pinte o fundo de azul petróleo escuro, texto 2, mais claro 80%.
Figura 19 – Opções a serem selecionadas para a formatação da linha
7. Selecione toda a tabela, altere a cor da linha da tabela para Branco, Plano de fundo 1, Mais escuro 25% e
selecione a opção Todas as bordas, de maneira que o resultado seja o seguinte:
13
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Figura 20 – Tabela final
8. Assim, pode-se parar a gravação da macro.
9. Como existem outras tabelas disponíveis, a macro deve ser testada nelas, de maneira que todas possuam a
mesma formatação, lembre-se, a referência relativa utilizada é de 2 células para cima do título.
Exercício 1.5. Ana utiliza uma Pasta do Excel para controlar as vendas mensais de sua mercearia. Ela está
perdendo muito tempo tendo que fazer os novos lançamentos e copiar os antigos para a planilha do
Histórico. Ajude Ana criando uma macro que a faça ganhar tempo, que faça tudo que ela precisa sozinho.
Ana utiliza três planilhas para fazer o controle de suas vendas: a planilha Vendas, a qual mostra as vendas
dos últimos seis meses; a planilha Lançamentos, na qual é lançado as informações mensais das vendas; e a planilha
Histórico, onde são armazenadas as informações mais antigas.
Procedimento de Ana: Recortar as informações do mês mais antigo da Planilha Vendas, colar na Planilha
Histórico na sequência, arrastar uma coluna para a esquerda as informações dos últimos cinco meses que sobraram
na planilha Vendas, recortar as informações da planilha Lançamentos e colar na Planilha Vendas na sequência, usar a
ferramenta preencher para colocar a data e manter as formatações originais.
Figura 21 – Abas da pasta de trabalho do exercício 5
1. Vamos criar uma macro que faça todo o processo para Ana automaticamente. Antes de iniciar a gravação de
nossa macro selecione a planilha Lançamento.
2. Nome da Macro será LançamentoDeVendas. A Tecla de Atalho será d (minúsculo). Armazenar macro em Esta
pasta de trabalho, a Descrição será: Automatização do procedimento da Ana.
3. Agora vamos recortar as vendas do mês mais antigo e colar na planilha Histórico. Selecione a Planilha Vendas.
4. Selecione o grupo de células B8:B14 e recorte.
5. Selecione a planilha Histórico.
6. Vamos selecionar a primeira coluna vazia desta planilha, no entanto, nós sabemos que a primeira coluna vazia é
a coluna E, mas o Excel não, e como será um procedimento automático que a cada nova execução a coluna vazia
mudará, deveremos utilizar alguns comandos específicos.
7. Selecione a célula A1, segure CTRL e pressione a seta para direita, o Excel vai selecionar a última célula com
conteúdo da linha.
8. Clique na aba Desenvolvedor e na ferramenta Usar Referências Relativas, pressione a seta para direita.
9. Ao utilizar a Ferramenta de Referência Relativa, o Excel ao invés de gravar a célula E1 quando apertou a seta para
a direita vai gravar a célula à direita da célula ativa. Portanto, independente de quantas vezes você executar esta
macro ele lançará as informações da Planilha Vendas sempre em uma coluna vazia da planilha Histórico.
10. Cole o conteúdo.
11. Acerte a largura da coluna com um duplo clique na linha entre as colunas E e F. Dessa forma ela se auto ajustará
e em qualquer situação será possível ver o conteúdo dela.
12. Clique novamente na ferramenta Usar Referências Relativas, agora ela não ficará mais selecionada.
14
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
13. Acabamos de concluir o processo de transferência dos lançamentos antigos para a planilha Histórico, agora
vamos transferir o lançamento do mês para a planilha de Vendas.
14. Selecione a planilha Vendas, novamente.
15. Selecione o grupo de células C8:G14.
16. Arraste para B8:F14.
17. Selecione a planilha Lançamentos.
18. Selecione o grupo de células de B1:B6 e recorte.
19. Selecione a planilha Vendas e Cole em G9.
20. Selecione F8, clique no quadradinho preto na ponta da célula e arraste para G8, replicando a progressão.
21. Selecione o grupo de células G9:G14 e formate as bordas e selecione a categoria Moeda.
22. Selecione a planilha Lançamentos.
23. E por fim clique em Parar Gravação, pode ser feito tanto pelo atalho na barra inferior ou pela aba Desenvolvedor.
24. Agora clique em desfazer até que não seja mais possível clicar neste botão.
25. Selecione a planilha Lançamentos e utilize nossa tecla de atalho para executar a macro. Pressione CTRL+d.
26. Verifique se o processo foi efetuado corretamente.
27. Volte à planilha Lançamentos.
28. Digite outras informações na tabela de lançamento.
29. Execute novamente a macro e verifique os lançamentos.
15
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
APLICAÇÃO DE MACROS E FUNÇÕES
Neste capítulo iremos focar em exercícios para a plicar o conhecimento de macros gravadas aprendido
anteriormente. Além disso, será introduzida a função PROCV.
2.1. EXERCÍCIOS
Exercício 2.1. Relatório da Gerência: uma empresa utiliza uma planilha do Excel para controlar o
funcionamento do seu reator principal. Nesta planilha são lançadas informações diárias do reator e estas devem ser
analisadas pela gerência para averiguar a situação da produção diária, a eficiência de seus equipamentos e a sua
manutenção. Para isso, os gestores devem avaliar algumas questões como nível de eficiência, nível da temperatura
e nível da pressão, no entanto, as informações estão lançadas em uma única tabela e todas misturadas. Para ajudar
na gestão desta indústria, devemos criar um relatório que os ajude a visualizar as informações que são lançadas na
planilha. Veja um modelo que os ajudaria:
Figura 22 – Modelo do Relatório da Gerência
A empresa entende como normalidade: pressão igual a 20 atm, temperatura igual a 300ºC; e eficiência entre 84%
e 85%. Portanto, anormalidade seriam as demais condições possíveis.
Neste exercício abordaremos os seguintes tópicos: layout e estilos, botões, botões de opção, caixa de
combinação, filtro avançado, remover duplicatas, macros.
1. Abra a Pasta de Trabalho Relatório da Gerência.
2. Para facilitar as coisas, vamos dividir nosso procedimento em etapas. Primeira Etapa será montar o Layout do
Relatório. Selecione a planilha Relatório da Gerência.
3. Clique com o botão direito no número 1 na linha 1 e selecione altura da linha. Digite 9 e tecle Enter.
4. Selecione o grupo de células B2:K28 e clique com o botão direito sobre esta área e selecione formatar células....
16
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
5. Selecione a guia Borda, na tabela dos Estilos, selecione o penúltimo da coluna da esquerda, mude a cor para:
Branco, Plano de fundo 1, Mais escuro 25%.
6. Clique em Contorno e clique em OK ou tecle Enter. Agora temos a base do nosso layout:
Figura 23 – Layout do Relatório
7. Agora precisamos saber a largura da coluna do relatório, para isso selecione a planilha Lançamentos.
8. Selecione o grupo de células de B3:G3. Tecle Ctrl+C.
9. Selecione a planilha Relatório da Gerência.
10. Selecione o grupo de células de D3:I3. Tecle Ctrl+Alt+V (atalho para Colar Especial).
11. Na tela do Colar Especial selecione a opção Largura da Coluna e Tecle Enter.
Figura 24 – Colar Especial
12. Agora temos as larguras certas do relatório, só precisamos acertar as larguras laterais. Selecione as colunas
B e C, pressione Ctrl e selecione as colunas J e K. Clique com o botão direito sobre uma destas quatro colunas e
selecione Largura da Coluna.... Digite 5 e Tecle Enter.
13. Vamos inserir o Título do Relatório, selecione as células D3:I5 e mescle.
17
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
14. Digite Relatório da Gerência. Formate a fonte para Cambria (Títulos), tamanho 28, e cor do texto Branco e
cor do fundo Azul, Ênfase 1, Mais escuro 50%.
15. Em seguida selecione o grupo de células C17:J27. Clique com o botão direito dentro da área selecionada e clique
em Formatar células....
16. Selecione a guia Borda, na tabela dos Estilos, selecione o penúltimo da coluna da esquerda.
17. Clique na caixa da cor e selecione: Branco, Plano de fundo 1, mais escuro 25%, e em seguida clique em Contorno,
depois clique em OK ou tecle Enter.
Até agora temos:
Figura 25 – Layout do Relatório - Parte 2
18. Vá para o friso exibir, e selecione as linhas de grade.
19. Agora iremos para a Segunda Etapa do nosso procedimento, seleção de botões.
20. Os Botões se encontram na guia do desenvolvedor, no grupo Controles, em Inserir:
Figura 26 – Botões
18
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Figura 27 – Descrição dos Botões
21. Selecione uma Caixa de Grupo. Coloque-a na região E7:F10.
22. Clique com o botão direito em cima da Caixa e abra Formatar controle.
23. Em tamanho, escolha altura 1,50cm e largura 5cm.
24. Alinhe sua Caixa de grupo, para que ela fique rente às margens superior e esquerda da célula D7.
25. Dando dois cliques sobre o texto “Caixa de grupo 1”, troque o nome para “Turno:”. Clique fora da área da caixa
e verifique a alteração.
26. Agora selecione uma Caixa de Combinação. Coloque-a no centro na Caixa de Grupo “Turno:”.
27. Selecione uma nova Caixa de Grupo. Coloque-a na região da metade da G7 até H10.
28. Abra o Formatar controle, altere o tamanho da mesma forma que na Caixa de grupo anterior e alinhe a Caixa
com as margens superior e direita da célula I7.
29. Troque o nome para “Pressão:”. Clique fora da área da caixa e verifique a alteração.
30. Selecione um Botão de Opção. Coloque-o dentro da segunda Caixa, posicionado na metade superior.
Posteriormente será inserido outro botão metade inferior da mesma Caixa.
31. Troque o nome para “Normalidade”. Clique fora da área da caixa e verifique a alteração.
32. Selecioneum novoBotãodeOpção.Coloque-odentrodacaixadapressão,nametade inferior da Caixa. Você pode
mover os botões deixando-os alinhados.
33. Troque o nome para “Anômalo”. Clique fora da área da caixa e verifique a alteração.
34. Selecione uma nova Caixa de Grupo. Coloque-a na região E12:F15. Abra o Formatar controle e escolha o mesmo
tamanho da primeira Caixa de grupo. Alinhe a Caixa rente às margens superior e esquerda da célula D11.
35. Troque o nome para “Temperatura:”. Clique fora da área da caixa e verifique a alteração.
36. Posicione dois Botões de Opção dentro da caixa da Temperatura. Um com o nome “Normalidade” e outro
com o nome “Anômalo”.
19
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
37. Selecione a última Caixa de Grupo. Posicione-a na região na metade do G12 até a H15. Abra novamente o
Formatar controle, escolha o mesmo tamanho da primeira Caixa, feche e alinhe a Caixa com as margens superior
e direita da célula I11
38. Troque o nome para “Eficiência:”. Clique fora da área da caixa e verifique a alteração.
39. Posicione dois Botões de Opção dentro da caixa da Eficiência. Um com o nome “Normalidade” e outro com o
nome “Anômalo”.
40. Até o momento você deve ter algo parecido com:
Figura 28 – Layout com Botões posicionados
41. Assim terminamos a parte de posicionamento dos botões.
42. Agora iremos para a Terceira Etapa, configuração dos botões.
43. Primeiro Botão a ser configurado será a Caixa de Combinação do Turno. Esta caixa precisa de valores de
entrada para serem mostrados na lista, para isso vamos selecionar os turnos existentes na planilha de
Lançamentos.
44. Selecione a planilha Lançamentos.
45. Selecione a coluna C e copie-a.
46. Selecione a planilha Apoio.
47. Selecione a coluna I e cole.
48. Com a coluna I ainda selecionada, clique na guia Dados e seguida selecione Remover Duplicatas no grupo
Ferramentas de Dados.
49. Clique em OK, e em seguida o Excel mostrará um aviso com a quantidade de itens que foram removidos e a
quantidade de itens que foram mantidos, clique em OK novamente.
50. Agora nós temos os valores de entrada para o nosso botão.
51. Em seguida iremos montar uma tabela de apoio para o filtro.
52. Ainda na planilha Apoio, selecione o grupo de células A1:E3.
53. Clique com o botão direito e clique em Formatar Células.
20
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
54. Na guia Borda, Selecione aborda fina (última da coluna da direita) e selecione acor:Branca, Planodefundo 1, Mais
escuro 25% e clique em Interna e em
55. Contorno. Clique em OK.
56. Selecione a planilha Lançamentos. Selecione as células C3, E3, F3 e G3. E copie.
57. Retorne a planilha Apoio. Selecione o grupo de células A1:D1. Tecle Ctrl+Alt+V e Selecione o grupo Colar a
opção Valores. Clique em OK.
58. Selecione a célula D1 e copie para a célula E1, selecione D3:E3 e Mescle as células.
59. Selecione a planilha Relatório da Gerência.
60. Clique com o botão direito na Caixa de Combinação dentro do grupo “Turno:”, e selecione
61. Formatar Controle.
Figura 29 – Formatar Controle
62. Clique na seta vermelha ao lado de Intervalo de Entrada.
63. Selecione a planilha Apoio.
64. Selecione o grupo de células I3:I6 e tecle Enter.
65. Agora nós precisamos indicar onde será lançado o valor retornado pelo botão, ou seja, o valor que o usuário
selecionou.
66. Clique na seta vermelha ao lado de Vínculo da Célula.
67. Selecione a planilha Apoio.
68. Selecione a Célula A3 e tecle Enter.
69. A opção linhas suspensas indica a quantidade máxima de opções que podem aparecer, enquantoasdemais
ficaram escondidase podem ser visualizadas pelabarra de rolagem do botão.
70. A opção Sombreamento 3D é meramente estética, selecione-a.
71. Em seguida clique em OK.
72. Clique em outro local fora do botão para desmarcá-lo e use-o, verifique se nossa lista está aparecendo.
Selecione a opção 00:00.
21
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
73. Selecione a planilha Apoio.
74. Veja que temos um 1 na célula A3, este valor vem do retorno do botão. Os botões retornam valores que são
contagens, por exemplo, temos opção A e opção B, se selecionarmos a opção A, ele retornará 1, se
selecionarmos a opção B, ele retornará 2. Porém para usarmos o filtro temos que ter o nome da opção e não
a contagem, para isso usaremos uma função que transcreve a contagem para a opção selecionada.
75. Para usarmos esta função precisamos fazer algumas configurações:
76. Selecione o grupo de células H3:H6 e coloque bordas simples.
77. Selecione o grupo de células H2:I2 e mescle.
78. Selecione H3 e digite 1, Selecione H4 e digite 2, Selecione H5 e digite 3 e Selecione H6 e digite4. Centralize os
números.
Figura 30 – Tabela Turnos
79. Agora iremos escrever a função. Selecione a Célula A2. Altere o formato da célula para hora no campo número.
80. Digite =PROCV(Esta fórmula é uma fórmula de procura, então, ela receberá um valor que deverá ser procurado
A3;. Este valor será procurado na primeira coluna de uma matriz H3:I6. Tendo encontrado o valor na matriz,
ela retornará um valor correspondente de uma das colunas desta linha, no caso da coluna 2. E tecle Enter para
finalizar nossa função.
Então temos =PROCV(Apoio!A3;Apoio!H3:I6;2), sendo Apoio! a definição da planilha onde se encontram as
células selecionadas.
Sintaxe da Função:
Figura 31 – Sintaxe Função PROCV
81. Agora vamos configurar os demais botões.
82. Selecione a planilha Relatório da Gerência.
83. Clique com o botão direito no botão Normalidade do grupo Pressão e selecione Formatar Controle.
84. Temos uma tela parecida com a do botão de combinação, porém este não possui entrada de dados.
85. Clique na seta vermelha ao lado de Vínculo da Célula.
86. Selecione a planilha Apoio, selecione a Célula B3 e tecle Enter.
87. Marque a opção sombreamento 3D e clique em OK.
88. Agora clique com o botão direito no botão Anômalo ainda do grupo Pressão e selecione Formatar Controle.
89. Perceba que o Vínculo da Célula já está preenchido, pois ambos os botões estão na mesma Caixa de Grupo,
então compartilham das mesmas configurações, no entanto o sombreamento 3D não vem marcado, então
selecione-o e clique em OK.
90. Repita o mesmo procedimento para Temperatura, porém no Vínculo de Célula selecione Apoio!C3, e para
Eficiência, selecione Apoio!D3.
91. Ainda na planilha Relatório da Gerência, selecione todas as opções Normalidade.
92. Selecione a planilha Apoio.
22
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
93. Agora temos que criar as funções para Pressão, Temperatura e Eficiência.
94. Selecione a Célula B2.
95. Agora tente pensar em como podemos fazer essa função. Dica: Use a função SE.
96. 90. Digite =SE(B3=1;20;”<>20”).
Sintaxe da função:
Figura 32 – Sintaxe da Função SE
97. Fazemos um teste lógico, B3=1, ou seja, se a opção marcada foi Normalidade. Se verdadeiro, retorna o valor 20,
pressão na normalidade, se falso, retorna <>20 (Diferente de 20). Perceba que o número nós podemos digitar
normal, já número com operadores temos que colocar entre aspas.
Obs: Dados no início do Exercício.
98. Agora façamos para a temperatura. Selecione C2.
99. Tente montar a função, sozinho, primeiro.
100. 95. Digite =SE(C3=1;300;”<>300”).
101. Mesmo processo, fazemos um teste lógico, C3=1, ou seja, se a opção marcada também foi Normalidade. Se
verdadeiro, retorna o valor 300, temperatura na normalidade, se falso, retorna
102. <>300 (Diferente de 300).
103. Por fim vamos fazer a função para a eficiência, no entanto esta é um pouco diferente pois sua normalidade é
um conjunto de valores entre 84% e 85%, por isso teremos que fazer duas funções, uma para o limite superior
e uma para o limite inferior. Novamente, tente pensar na função.
104. Selecione a Célula D2.
105. 99. Digite =SE(D3=1;”>=84%”;”<84%”).
106. 100.Selecione a Célula E2.
107. 101.Digite =SE(D3=1;”<=85%”;”>85%”).
Agora já temos nosso filtro configurado, e ao alterar os botões ele altera automaticamente, as configurações do filtro.
108. Agora vamos criar nossa macro que fará uma pesquisa automática.
109. Selecione a planilha Apoio.
110. Clique em gravar macro.
111. Nome da Macro: RelatóriodaGerência
112. Tecla de Atalho: R (maiúsculo), ou seja, Ctrl+Shift+R.
113. Armazenar macro em: Esta pasta de trabalho.
114. Descrição: Macro de busca automática do Relatório da Gerência.
115. Clique em OK.
116. Selecione a planilha Relatório da Gerência.
117. Selecione a guia Dados e selecione Avançado no grupo Classificar e Filtrar:
23
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Figura 33 – Filtro Avançado
118. Marque a opção Copiar para outro local.
119. Clique na seta vermelha ao lado de Intervalo da lista.
120. Selecione a planilha Lançamentos, selecione o grupo de células B3:G63 e tecle Enter.
121. Clique na seta vermelha ao lado de Intervalo de Critérios.
122. Selecione a planilha Apoio, selecione o grupo de células A1:E2 e tecle Enter.
123. Agora clique na seta vermelha ao lado de Copiar para.
124. Selecione o grupo de células D18:I26 (Desta própria planilha – Relatório da Gerência) e tecle Enter.
125. Clique em OK.
126. Clique em Parar gravação.
127. Agora para finalizar nosso relatório vamos criar um botão. Clique na guia do Desenvolvedor, Inserir e selecione
o Botão (o primeiro).
128. Posicione-o na região I14:J16.
129. Ao soltar o botão aparecerá a seguinte tela:
Figura 34 – Macro do Botão
24
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
130. Selecione a macro Relatório da Gerência e clique em OK.
131. Altere o nome do Botão para Procurar.
Finalizamos nosso Relatório, faça alguns testes e verifique o relatório. Não se esqueça de ir em macros e ver o
código gerado pela macro que gravamos para associar os comandos aos códigos.
Exercício 2.2. Menu de Equações: Sílvio está perdendo muito tempo fazendo cálculos repetitivos: “sempre
as mesmas equações, sempre os mesmos cálculos, a única coisa que muda são os números.”. Para resolver este
problema, Sílvio teve a ideia de montar uma planilha programada com todas as equações que ele precisa, onde
ele lança os valores das variáveis e retorna o valor do resultado na unidade que precisar.
Sílvio usa as seguintes equações: Clapeyron, Van der Waals e Peng-Robinson. Monte um menu com as três
equações e crie o mecanismo de cálculo da equação de Clapeyron.
Neste exercício abordaremos os seguintes tópicos: Fórmulas e combinações defórmulas; Macros simples; Botões;
Layout e Design; Validação de Dados; Associar macros a imagens e formas; Hiperlinks; Bloquear Planilhas,
desbloquear células, bloquear estrutura da pasta de trabalho; Aprender a efetuar cálculos complexos que dependem
de informações do usuário; Nomear células;
Antes de iniciarmos o exercício vamos construir uma linha de raciocínio do que precisaremos fazer:
Etapa 1: Conhecer a Equação de Clapeyron e buscar as informações de conversão.
Nesta Etapa, iremos pesquisar entender a equação de Clapeyron, suas variáveis, como elas funcionam e como é
a fórmula. Em seguida buscaremos os fatores de conversão para cada unidade que precisarmos de acordo com a
demanda da fórmula, e lançaremos esses dados em uma planilha de apoio.
Etapa 2: Desenvolver o mecanismo de funcionamento da equação de Clapeyron.
Aqui montaremos a estrutura da fórmula, vamos desenvolver toda a parte de cálculo e conversões, relacionando
tudo isso com as células que receberão informações do usuário.
Etapa 3: Criar o Menu de Equações.
Nesta Etapa criaremos a planilha de Menu, seus botões, as macros e hiperlinks.
Etapa 4: Trabalhar no Layout e Design.
Nesta etapa deixaremos a planilha com um layout agradável e bloquearemos as estruturas da planilha que o
usuário não deverá mexer.
Agora mãos à obra!
1. Abra a Pasta de Trabalho Exercício 2.2.
OBS: Se caso você não tiver esta pasta de trabalho não tem problema, você pode abrir um novo arquivo e seguir
o exercício. Caso você tenha a planilha do exercício em mãos, as planilhas para realizar o exercício já estão criadas e
você pode pular o passo 2.
2. A primeira Etapa do nosso exercício diz respeito à Equação de Clapeyron e fatores de conversão. Então
vamos criar duas planilhas. Tecle Shift+F11 ou clique em Inserir Planilha (Ao lado da planilha Enunciado do
Exercício). Renomeie a primeira planilha para Clapeyron e a segunda planilha para Apoio.
A primeira planilha servirá para receber informações do usuário e fazer os cálculos, já a segunda servirá somente
como apoio para esta primeira, guardará informações como os fatores de conversão e outras que forem necessárias.
3. Selecione a planilha Apoio.
4. Agora iremos montar nossas tabelas de conversão. A Equação de Clapeyron (PV=nRT) possui quatro variáveis
e uma constante. Para facilitar nossas conversões vamos estabelecer um valor para a constante e fixar suas
unidades.
R = 8,314 J. mol − 1. K − 1
25
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
J = N. m = N. m − 2.m3 = Pa. m3
Portanto,nossasunidadesbasesserão:pressãoemPascal (Pa), volumeemmetrocúbico (m³), quantidade de matéria
em mol e temperatura em Kelvin (K). Definido nossas unidades bases, precisaremos definir com quais outras unidades
trabalhar e quais serão seus fatores de conversão.
Nesse exercício serão utilizadas as seguintes unidades:
 Pressão: Pa, bar, kPa, Psia, atm, torr;
 Volume: m³, cm³, L, ft³, in³, gal;
 Quantidade de Matéria: mol, kmol;
 Temperatura: K, °C, °F, R;
Agora precisamos buscar nossos fatores de conversão. Para isso usaremos uma tabela de conversões.
Grandeza Conversão
Comprimento
1 m = 100 cm
1 m = 3,280084 ft
1 m = 39,3701 in
Volume
1 m³ = 1000 L
1 m³ = 264,1722 gal
Pressão
1 bar = 105 N.m-2
1 bar = 105 Pa= 102 kPa
1 bar = 0,986923 atm
1 bar = 14,5038 psia
1 bar = 750,061 torr
Quantidade de Matéria 1mol=10-3kmol
Temperatura
𝑇(𝐾) = 273 + 𝑇(º𝐶)
𝑇(𝐾) = (𝑇(º𝐹) + 459,67) ×
5
9
𝑇(𝐾) =
𝑇(𝑅𝑎)
1,8
Tabela 1 – Conversão de Unidades
5. Agora que temos as informações podemos lançá-las na nossa planilha Apoio. Iremos fazer uma tabela de
conversão com os fatores de conversão que nós precisamos. Na célula A1 escreva “Tabela de Conversões”, na
célula A2 escreva “Unidade”, na célula B2 escreva “Fator Multiplicador”, na célula C2 escreva “Fator Soma”
e na célula D2 escreva “Unidade” novamente.
6. Na Coluna A vamos escrever todas as unidades que iremos trabalhar. Comece na célula A3 digitando “Pa”,
prossiga com as demais unidades bar, kPa, psia, atm, torr, m³, cm³, L, ft³, in³, gal, mol, kmol, K, °C, °F, R até a
célula A20.
7. Agora vamos criar os fatores de conversão. Veja que podemos fazer funções para a conversão de unidades do
tipo P(Pa)=X*P(bar) por exemplo. E os fatores de conversão serão os X’s das funções. Como desejamos
converter qualquer unidade de Pressão para Pascal, pois será a nossa unidade base dos cálculos, os fatores de
pressão serão para conversão em Pa. Os fatores de Volume serão para m³, Quantidade de Matéria para mol e
Temperatura para Kelvin(K). Veja a tabela abaixo:
26
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Função Fator Multiplicador Fator Soma
𝑷(𝑷𝒂) = 𝟏 × 𝑷(𝑷𝒂) 1 -
𝑷(𝑷𝒂) = 𝟏𝟎𝟓
× 𝑷(𝒃𝒂𝒓) 105 -
𝑷(𝑷𝒂) = 𝟏𝟎𝟎𝟎 × 𝑷(𝒌𝑷𝒂) 1000 -
𝑷(𝑷𝒂) = 𝟏𝟎𝟓𝟏𝟒, 𝟓𝟎𝟑𝟖 × 𝑷(𝒑𝒔𝒊𝒂) 10514,5038 -
𝑷(𝑷𝒂) = 𝟏𝟎𝟓𝟎, 𝟗𝟖𝟔𝟗𝟐𝟑
× 𝑷(𝒂𝒕𝒎)
1050,986923 -
𝑷(𝑷𝒂) = 𝟏𝟎𝟓𝟕𝟓𝟎, 𝟎𝟔𝟏 × 𝑷(𝒕𝒐𝒓𝒓) 105750,061 -
𝑽(𝒎𝟑) = 𝟏 × 𝑽(𝒎𝟑
) 1 -
𝑽(𝒎𝟑) = 𝟏𝟎−𝟔
× 𝑽(𝒄𝒎𝟑
) 10−6 -
𝑽(𝒎𝟑) = 𝟏𝟎−𝟑
× 𝑽(𝑳) 10−3 -
𝑽(𝒎𝟑) =
𝟏
(𝟑, 𝟐𝟖𝟎𝟎𝟖𝟒)𝟑
× 𝑽(𝒇𝒕𝟑
)
1
(3,280084)3 -
𝑽(𝒎𝟑) =
𝟏
(𝟑𝟗, 𝟑𝟕𝟎𝟏)𝟑
× 𝑽(𝒊𝒏𝟑
)
1
(39,3701)3 -
𝑽(𝒎𝟑) =
𝟏
𝟐𝟔𝟒, 𝟏𝟕𝟐𝟐
× 𝑽(𝒈𝒂𝒍)
1
264,1722
-
𝑸𝑴(𝒎𝒐𝒍) = 𝟏 × 𝑸𝑴(𝒎𝒐𝒍) 1 -
𝑸𝑴(𝒎𝒐𝒍) = 𝟏𝟎𝟑
× 𝑸𝑴(𝒌𝒎𝒐𝒍) 103 -
𝑻(𝑲) = 𝟏 × 𝑻(𝑲) + 𝟎 1 0
𝑻(𝑲) =
𝑻(º𝑪)
𝟏
+ 𝟐𝟕𝟑, 𝟏𝟓 1 273,15
𝑻(𝑲) =
𝑻(º𝑭)
𝟏, 𝟖
+
𝟒𝟓𝟗, 𝟔𝟕
𝟏, 𝟖
1
1,8
459,67
1,8
𝑻(𝑲) =
𝑻(𝑹)
𝟏, 𝟖
1
1,8
0
Tabela 2 – Conversões de Unidades
Figura 35 – Nomeando células
27
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
8. No campo Nome digite “UnidadesPressão”, verifique se o campo Refere-se a: está igual ao da figura acima, e
clique em OK. Selecione o grupo de células A9:A14 e clique em Definir Nome
9. estamos selecionando um grupo de células para o campo Refere-se a: já vir preenchido. No campo Nome
digite “UnidadesVolume” e clique em OK. Selecione o grupo de células A15:A16, clique me Definir Nome, em
Nome digite “UnidadesQuantidadeDeMatéria” e clique em OK. Selecione o grupo de células A17:A20, clique
em Definir Nome, em Nome digite “UnidadesTemperatura” e clique em OK. Por fim, vamos dar nome à
tabela, pois a usaremos mais tarde, selecione o grupo de células A3:D20, clique em Definir Nome, em Nome
digite “TC” – Tabela de Conversões – e clique em OK.
10. Finalizado a configuração da planilha Apoio vamos montar o layout da Equação. Selecione a planilha Clapeyron.
11. Agora precisamos montar o layout do cálculo da planilha. Precisaremos receber três variáveis e uma
“incógnita” para calcular, o R será fixo. Para facilitar nossos cálculos vamos estipular que a “incógnita” é
um “?”, então no campo do valor da variável que queremos calcular digitamos “?”.
Portanto precisaremos de um campo para o valor de cada variável, um campo para a unidade de cada variável, um
campo para o tipo de resposta, o valor da resposta e a unidade da resposta.
Vamos escrever PV=nRT para situar os campos na planilha.
12. Selecione o grupo de células B7:C8 e mescle. Escreva “P”.
13. Selecione o grupo de células D7:E8 e mescle. Escreva “V”.
14. Selecione o grupo de células F7:F8 e mescle. Escreva “=”.
15. Selecione o grupo de células G7:I8 e mescle. Escreva “n”.
16. Selecione o grupo de células J7:K8 e mescle. Escreva “R”.
17. Selecione o grupo de células L7:N8 e mescle. Escreva “T”.
18. Selecione o grupo de células B7:N8, mude o tamanho da letra para 22 e deixe em Negrito, escolha também um
fundo cor: Azul, Ênfase 1, Mais claro 80%. Agora vamos explicitar os campos de valores e de unidades.
19. Na célula B9 digite “Pressão”, na célula C9 digite “Unid.”, na célula D9 digite “Volume”, na célula E9 digite
“Unid.”. Selecione o grupo de células G9:H9, mescle e digite “Qtde de Mat.”. Na
20. célula I9 digite “Unid.”, na célula J9 digite “R”, na célula K9 digite “Unid.”. Selecione o grupo de células L9:M9,
mescle e digite “Temperatura”, na célula N9 digite “Unid.”. Selecione o grupo de células B9:N9 e centralize o
alinhamento do texto.
21. Selecione os grupos de células B10:B11, C10:C11, D10:D11, E10:E11, F10:F11, G10:H11, I10:I11, J10:J11,
K10:K11, L10:M11, N10:N11, P6:S6; P7:Q7; R7:S7 e mescle. Veja que se você selecionar tudo irá mesclar
tudo e o objetivo é mesclar cada grupo, para fazer tudo de uma vez você pode selecionar o primeiro grupo,
segurar Ctrl e selecionar os demais, um por um. Em seguida você clica em mesclar.
22. Selecione os grupos de células C16:E17, F16:F17, G16:H17, I16:I17 e mescle. Seguindo a mesma ideia do
item acima.
A região de B10:N11 será onde o usuário irá informar os valores, as unidades e a variável a ser calculada,
colocando um “?”.
A região C16:I17 será onde o resultado será mostrado.
Vamos escrever o valor da Constante dos Gases, que fixamos, embaixo de R e colocar sua unidade. Na célula J10
escreva “8,314” e na célula K10 escreva “J/mol.K”.
28
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Figura 36 – Layout da Equação de Clapeyron
Por ora, não se preocupe com a estética da sua planilha comparada às imagens da apostila. Trabalharemos nisso
nos últimos itens do exercício.
23. Mais uma vez, vamos definir alguns nomes de células para facilitar nossos cálculos e diminuir nossas fórmulas.
Selecione a célula B10, clique em Definir Nome na aba Fórmulas e em Nome digite “PU” – valor da Pressão
que o Usuário digitou – como nosso intuito é diminuir o tamanho de fórmulas os nomes devem ser o mais
curto possível, clique em OK. Selecione a célula C10, defina o nome “UPU”; Para célula D10, “VU”, célula E10
defina “UVU”, célula G10 defina “nU”, célula I10 defina “UnU”, célula L10 defina “TU”, célula N10 defina “UTU”
e célula I13 defina “UR” Unidade da Resposta.
Assim finalizamos a primeira Etapa do nosso processo.
24. Agora que temos o layout da nossa Equação, sabemos por onde receberemos os dados, onde mostraremos o
resultado, e já temos uma planilha de apoio com as conversões de unidades que precisamos, iremos montar o
mecanismo que efetuará os cálculos, a nossa Etapa 2.
Veja que não é tão simples por mais que seja PV=nRT. Precisamos receber informações, interpretar quais são
os valores a serem usados nos cálculos e qual é a variável a ser isolada, converter as unidades para as nossas
unidades bases do cálculo, efetuar o cálculo, converter o resultado para a unidade que o usuário solicitou e, por fim,
mostrar o resultado.
Para os locais onde o usuário digitará os valores não há nada a ser feito, ele apenas deve digitar os valores que
deseja e colocar “?” na variável que deseja calcular. No entanto, nascélulas que ele deverá colocar as unidades ele deve
tomar o cuidado para colocar apenas unidades que temos na nossa tabela de conversões, pois caso contrário nós
não conseguiremos efetuar o cálculo. Agora, é mais confiável acreditar que o usuário tomará esse cuidado ou
restringi-lo a utilizar apenas unidades que temos em nosso banco de dados? Lembre-se que quando vamos
desenvolver uma planilha nem sempre sabemos quem estará do outro lado operando-a, portanto, temos que partir do
pressuposto de que o usuário não entende nada de Excel.
25. Para fazer essa restrição usaremos uma Validação de Dados. Selecione a célula C10, clique na aba Dados e
clique em Validação de Dados do grupo Ferramentas de Dados. Nós iremos criar uma lista suspensa para que o
usuário possa selecionar uma unidade permitida, ou simplesmente digitá-la.
No campo Permitir selecione Lista. No campo Fonte digite “=UnidadesPressão”, local onde está disposta a relação
de todas as unidades de pressão que estamos considerando (na Planilha Apoio conjunto de células A3:A8). Clique na
aba Alerta de Erro, no campo Título digite “Erro na Unidade” e no campo Mensagem digite“Unidade digitada não se
encontra no banco dedados.”. Tecle OK.
29
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Figura 37 – Validação de Dados
Clique na célula C10 e veja que agora ela mostra uma seta para baixo, clique na seta e veja as opções de unidades
de pressão.
26. Vamos repetir esse procedimento para Volume, Quantidade de Matéria e Temperatura. Tente fazer esse
procedimento seguindo o mesmo procedimento anterior, o que irá mudar é a fonte, lembre-se dos nomes
que definimos lá na Etapa 1 – UnidadesVolume, UnidadesQuantidadeDeMatéria e UnidadesTemperatura.
Selecione a célula E10. Clique em Validação de Dados. No campo Permitir selecione Lista, no campo Fonte digite
“=UnidadesVolume” na aba Alerta de Erro, no campo Título digite “Erro na Unidade” e no campo Mensagem digite
“Unidade digitada não se encontra no banco de dados.”. Tecle OK.
Selecione a célula I10. Clique em Validação de Dados. No campo Permitir selecione Lista, no campo Fonte digite
“=UnidadesQuantidadeDeMatéria”, na aba Alerta de Erro, no campo Título digite “Erro na Unidade” e no campo
Mensagem digite “Unidade digitada não se encontra no banco de dados.”. Tecle OK.
Selecione a célula N10. Clique em Validação de Dados. No campo Permitir selecione Lista, no campo Fonte digite
“=UnidadesTemperatura”, na aba Alerta de Erro, no campo Título digite “Erro na Unidade” e no campo Mensagem
digite “Unidade digitada não se encontra no banco de dados.”. Tecle OK.
27. Feitas as devidas restrições, já temos definido os locais que o usuário irá utilizar, agora vamos montar o cálculo.
Para efetuarmos o cálculo usando o R que definimos precisamos deixar todos os valores que o usuário digitar
nas unidades do R, para isso iremos converter os valores que o usuário digitar, independente se o valor já está
na unidade base ou não e por isso colocamos as unidades bases na tabela de conversão e seus fatores de
conversão como 1, e jogar esse valor convertido em uma outra célula.
Mas como iremos fazer a conversão?
Vamos receber a unidade que o usuário digitou, procurar o fator de conversão referente a ela e efetuar a
conversão.
Para isso vamos utilizar a mesma função que usamos no Exercício 5 – Relatório da Gerência, a função PROCV.
Sintaxe da Função:
Figura 38 – Sintaxe Função PROCV
O valor procurado será a unidade indicada pelo usuário, a matriz será a tabela de conversão de unidades – TC –, o
índice da coluna será 2 (para o fator multiplicador) ou 3 (para o fator soma) e o último item colocaremos FALSO. Isso
significa que a função irá até a nossa tabela e procurará o valor na primeira coluna, encontrado esse valor ela fixará a
linha em que o valor se encontra e irá retornar o valor que se encontra na segunda (para 2) ou terceira (para 3)
30
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
coluna da tabela nesta linha do valor encontrado. O Falso significa que buscará na primeira coluna um valor que seja
idêntico ao valor procurado, se fosse Verdadeiro ele buscaria um valor próximo, caso o valor correto não tenha sido
encontrado.
28. Para converter o valor, vamos multiplicá-lo pelo fator multiplicador e, no caso da temperatura, somar o
fator soma. Selecione a célula B13 e digite “=PU*PROCV(UPU;TC;2;FALSO)” (as aspas no início e no final da
fórmula só indicam onde começa a fórmula e onde termina, não fazem parte da fórmula, usaremos essa
sinalização). O PU é o valor que o usuário irá digitar – lembra quando definimos os nomes? -, e o resto é o fator
de conversão que a nossa fórmula irá retornar – a fórmula procurará o valor de UPU exato na tabela TC e
retornará o valor da 2 coluna. Assim teremos um valor de pressão sempre em Pascal na célula B13.
Perceba que a célula ficou assim “#N/D”. O “#” significa que houve um erro e o N/D significa que algum valor não
foi encontrado. Como colocamos FALSO na função PROCV e ele não encontrou o valor zero, que está na célula C10
neste momento, na tabela que selecionamos - a tabela de conversões -eleretornou esse erro. Para não deixar acélula
com erro vamos usar outra função, chamada SEERRO.
Sintaxe da Função:
Figura 39 – Sintaxe Função SEERRO
Selecione a célula B13 novamente. Tecle F2 para acessar o conteúdo da célula. E digite
“=SEERRO(PU*PROCV(UPU;TC;2;FALSO); "")” (não esqueça que as aspas do início e do final não entram na fórmula,
as no meio sim) e tecle ENTER. Ou seja, se encontrar um valor, retornará o valor, se não encontrar e retornará “”
(Vazio). Veja que agora a célula ficou vazia.
29. Na célula C13 escreva “Pa”, para não gerar dúvidas.
30. Agora vamos fazer o mesmo para o Volume, a Quantidade de Matéria e a Temperatura.
Tente fazer as fórmulas sozinho(a), entender o que fizemos para a pressão e replicar isso para as demais.
Na célula D13 digite “=SEERRO(VU*PROCV(UVU;TC;2;FALSO);"")”.
Na célula E13 digite “m³”.
Selecione o grupo de células G13:H13 e mescle. Digite “=SEERRO(nU*PROCV(UnU;TC;2;FALSO);"")”.
Na célula I13 digite “mol”.
Selecione o grupo de células L13:M13 e mescle. Para a Temperatura a fórmula será um pouco diferente, pois
temos dois fatores de conversão, mas não foge da lógica. O primeiro vai multiplicar pelo valor recebido do usuário e
o segundo somaremos a essa multiplicação. Então a fórmula ficará assim
“=SEERRO(TU*PROCV(UTU;TC;2;FALSO)+PROCV(UTU;TC;3;FALSO);"")”.
Onde TU é o valor recebido pelo usuário, o primeiro PROCV é para encontrar o fator multiplicador e o segundo é o
fator soma.
Na célula N13 digite “K”.
31. Agora vamos verificar se tudo está certo, na célula B10 digite “1” e na célula C10 digite “atm”. Na célula B13
aparecerá, automaticamente, 101325, o resultado que esperávamos, logo a pressão está ok. Apague os valores
de B10 e C10.
Em seguida vamos montar o cálculo do resultado.
32. Primeiro vamos indicar na célula C16 qual o tipo de resultado o usuário quer. Ou seja, vamos dizer onde ele
colocou o “?”. Selecione a célula C16 e digite
“=SE(PU="?";B9;SE(VU="?";D9;SE(nU="?";G9;SE(TU="?";L9;""))))”. Isso significa que iremos analisar campo
a campo vendo se o usuário colocou o “?” e retornar o nome do campo, por exemplo se ele colocar “?”
embaixo do Volume a fórmula retornará Volume. O final da fórmula indica que se o usuário não digitar “?” esta
célula ficará em branco.
33. Na célula F16 digite “=” e tecle ENTER;
31
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
34. Na célula G16 iremos efetuar o cálculo propriamente dito, no entanto temos que retornar para o usuário o
resultado na unidade que ele deseja e não no S.I., então para deixar a fórmula menor, vamos fazer o cálculo
no SI em outro campo e depois convertemos para a unidade desejada.
35. Antes de começarmos o cálculo vamos nomear mais algumas células para facilitar nossos cálculos. Defina B13
como “P”, defina D13 como “V”, defina G13 como “n”, defina J10 como “R_” e defina L13 como “T”.
36. Agora na célula P6 digite “Conversão para o SI”. Na célula P7 iremos fazer o cálculo no SI. Perceba que a fórmula
do cálculo depende de onde está o “?”, portanto teremos que levar esse fator em consideração, logo será algo
parecido com a última fórmula, usando uma cadeia de funções SE. Digite a seguinte
fórmula: =SEERRO(SE(PU="?";n*R_*T/V;SE(VU="?";n*R_*T/P;SE(nU="?";P*V/R_/T;SE(TU="?";P*
V/n/R_;""))));"")”.
Essa fórmula avalia cada campo se há “?” e calcula a fórmula se for verdadeiro, e por fim, se não houver “?” deixa em
branco. Caso haja algum erro, ela deixará em branco também.
Para facilitar a visualização vamos indicar a unidade desse valor. Veja que esse cálculo intermediário será apenas
de apoio.
37. Selecione a célula R7 e digite
“=SEERRO(SE(PU="?";C13;SE(VU="?";E13;SE(nU="?";I13;SE(TU="?";N13;""))));"")”.
38. Agora temos o cálculo no SI com a unidade, se caso precisar saber o que é esse valor basta olhar a unidade.
39. Para mostrarmos o resultado do cálculo precisaremos converter novamente o resultado do SI para a unidade
que o usuário deseja. Para isso basta encontrarmos o fator de conversão, usando PROCV, e dividir o resultado
no SI pelo fator de conversão. Assim o resultado estará na unidade correta.
40. Vamos identificar a unidade que o usuário deseja, para sabermos pelo que procurar nas tabelas de
conversões. Selecione a célula I16 e digite
“=SE(PU="?";UPU;SE(VU="?";UVU;SE(nU="?";UnU;SE(TU="?";UTU;""))))”
Por fim, vamos mostrar o resultado fazendo a conversão para a unidade desejada. Selecione a célula G16 e
digite “=(P7-PROCV(I16;TC;3;FALSO))/PROCV(I16;TC;2;FALSO)” (não esqueça que a primeira e a última aspas não
entram na fórmula). Veja que pegamos o valor calculado para o SI, subtraímos o termo fator soma quando for
temperatura, e dividimos pelos fatores multiplicadores das conversões, usando a função PROCV para encontrar esses
valores.
Para conferir se está tudo certo faça um teste, coloque informações que você sabe o resultado e veja se a
resposta está correta. Por exemplo, nós sabemos que 1 mol de gás à 1 atm e 0°C ocupa um volume de
aproximadamente 22,4 L. Coloque as informações e deixe o volume com “?” e unidade em “L”. Veja se o resultado
está correto.
Figura 40 – Final da Etapa dois
Etapa 2 concluída, o cálculo da equação de Clapeyron já está funcionando.
41. Vamos para a Etapa 3: Criar o menu de equações. Vamos inserir uma nova planilha e
42. renomear para “Menu”; Selecione a nova planilha Menu.
32
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
43. Clique na aba Inserir, e no grupo Texto clique em Caixa de Texto. Crie uma caixa de texto sobre o grupo de
células C3:I5. Dentro da caixa escreva “Menu de Equações”. Nessa Etapa não vamos nos preocupar com a
formatação, apenas criar a estrutura.
Crie mais quatro Caixas de Texto cada uma sobre cada um dos grupos de células a seguir: B8:E10; G8:J10;
B13:E15; G13:J15; E em cada caixa de texto digite: “CLAPEYRON”, “VAN DER WAALS”, “CLAPEYRON” e “PENG-
ROBINSON”. Digitamos duas vezes Clapeyron apenas para fins didáticos, pois ensinaremos dois métodos para
redirecionar o usuário para outro local. As outras duas equações ficarão de exercício para você fazer com o
conhecimento que aprendeu.
Figura 41 – Menu de Equações - Estrutura
44. O botão Clapeyron devenos levar até aplanilha Clapeyron. Para isso iremosfazer umamacro e usar um hiperlink.
Ainda com a planilha Menu selecionada, clique em gravar uma macro. Dê o nome de Clapeyron, e na descrição
digite “Seleciona a planilha Clapeyron”. Clique em OK, não esquece que tudo que fizer será gravado, então
tome cuidado para não fazer nada que possa atrapalhar a macro que está gravando. Selecione a planilha
Clapeyron, apenas. Pare a gravação.
45. Selecione a planilha Menu novamente. Agora vamos fazer os botões funcionarem. Clique com o botão direito
na primeira caixa de texto do Clapeyron, depois clique em Atribuir Macro. Selecione Clapeyron e clique em
OK. Clique em uma outra célula e passe o curso sobre a caixa de texto, veja que agora aparecerá uma mãozinha
ao invés do curso de edição de texto. Clique e agora você está na planilha Clapeyron.
46. Agora vamos criar um botão na planilha Clapeyron para que o usuário possa voltar ao Menu. Ainda na planilha
Clapeyron, clique na aba Inserir, depois em Formas do grupo Ilustrações e selecione uma seta larga para a
direita listrada (depois de escolher esta seta, vá nas configurações da mesma e mude a direção para esquerda).
Crie uma seta embaixo da temperatura, igual a figura abaixo. Clique na Seta criada e digite “VOLTAR”.
Figura 42 – Seta voltar
47. Vamos criar uma macro para selecionar a planilha menu. Clique em gravar macro, dê o nome de “Menu”, na
descrição digite “Seleciona a planilha menu” e clique em OK. Relembrando que tudo que fizer agora será
gravado.
48. Selecione a planilha Menu e pare a gravação. Selecione a planilha Clapeyron novamente.
49. Clique com o botão direito sobre a seta VOLTAR e selecione atribuir macro. Selecione a macro Menu e clique
em OK. Clique em qualquer outra célula e passe o cursor sobre a seta, clique. Você foi encaminhado para a
planilha Menu.
50. Vamos fazer o hiperlink para o segundo botão agora. Clique com o botão direito sobre o segundo botão
Clapeyron. Selecione Hiperlink. Na área Vincular a: selecione Colocar neste documento. Veja que na caixa
33
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
branca ao lado apareceram todas as planilhas desta pasta de trabalho, selecione a planilha Clapeyron e clique
em OK.
Figura 43 – Inserir Hiperlink
Observação: A ordem em que estão dispostas as planilhas não tem importância.
Faça o mesmo teste para este botão, clique em qualquer outra célula e clique no botão.
Assim finalizamos a Terceira Etapa do nosso exercício, agora vamos para última etapa: Deixar a planilha com um
visual agradável e esconder o que não é necessário ser mostrado.
51. Primeiro vamos trabalhar no design. Ainda com a planilha Clapeyron selecionada, selecione o grupo de célula
B3:N5 e mescle. Vamos dar um título para a planilha e escrever as instruções para que qualquer pessoa possa
usá-la. Nesta nova célula digite “Cálculos usando Equação de Clapeyron: coloque os dados para o cálculo,
selecione as unidades e na variável que deseja calcular coloque “?” e selecione a unidade.” e na aba
Início clique em Quebrar Texto Automaticamente no grupo Alinhamento, ainda neste grupo clique no
Alinhamento ao Meio, para deixar o texto centralizado na vertical. No grupo Fonte, certifique-se de usar a
fonte Calibri (títulos), altere o tamanho da letra para 16, clique em Negrito e altere a cor da letra para Branco
e o fundo para Azul, Ênfase 1, Mais escuro 50%.
52. Selecione a célula P6, no grupo Fonte, clique em Negrito e altere a cor do fundo para Azul, Ênfase 1, Mais claro
80%. Selecione as células P6:S7, aplique bordas simples na cor Branco, Plano de Fundo 1, Mais escuro 25% e, no
grupo Fonte, centralize o texto.
53. Vamos esconder as linhas que não precisam ser mostradas ao usuário, as dos cálculos intermediários.
Selecione as linhas 12 e 13, clique com o botão direito e clique em ocultar.
54. Em seguida, vamos destacar as células que o usuário poderá alterar, as de valores e unidades das variáveis.
Selecione os grupos de células B10:C10, D10:E10, G10:I10 e L10:N10 segurando Ctrl, e altere o tamanho da
letra para 14, clique em Alinhar ao Meio e selecione Borda Normal Cor: Branco, Plano de fundo I, Mais
escuro 25%. Selecione o grupo de célula J10:K10, altere o tamanho da letra para 14 e clique em Alinhar ao
Meio. Na célula F10 digite “=”, altere o tamanho para 14 e alinhe ao meio, coloque nesse conjunto a mesma
borda utilizada anteriormente.
55. Selecione o grupo de células C16:I16, altere o tamanho para 20, alinhe ao meio, clique em Negrito e selecione
a mesma borda utilizada anteriormente.
56. Selecione a coluna P, segure Shift, tecle End e tecle Seta para a direita. Você selecionará todas as colunas
depois da Coluna P, clique com o botão direito sobre qualquer coluna e selecione ocultar. Faça a mesma coisa
para as linhas, selecione a linha 21, segure Shift, tecle End e tecle Seta para baixo. Em seguida selecione ocultar.
Agora a planilha mostra apenas o necessário, assim ela se torna mais limpa e prática, muitas vezes as pessoas que
criam as planilhas o fazem para uma terceira pessoa usar, e essa terceira pessoas muitas vezes não tem tanto
conhecimento em Excel o que nos leva a uma alta probabilidade de ocorrer erros, seja na hora de lançar dados ou
efetuar uma ação com as células. Para acabar com as chances de ocorrência de erros precisamos limitar o usuário a
utilizar somente o que ele precisa, para isso servem os menus, as relações de encaminhamento do usuário até a
planilha que ele deseja, e por fim o que iremos fazer agora, o bloqueio de estruturas que ele não irá usar e não deverá
mexer, pois se por acaso ele resolver apagar uma fórmula que seja ele acabará com a funcionalidade da planilha,
por mais que seja sem intenção.
57. Selecione o grupo de células B10:E10, G10:I10 e L10:N10, as células que o usuário poderá alterar, na aba Início,
no grupo Células, clique em Formatar, abrirá uma lista, no grupo Proteção a opção Bloquear célula está
marcada, desmarque-a. Por padrão, o Excel bloqueia todas as células da planilha, no caso de você precisar
34
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
proteger a planilha, e se você desejar que alguma célula possa sofrer alterações, você deverá desbloqueá-la
antes de proteger sua planilha. Enfim vamos proteger nossa planilha, clique novamente em Formatar, e ainda
no grupo Proteger há a opção Proteger Planilha, clique nela. Abrirá uma nova janela, no campo Senha para
proteger a planilha: digite “senha” (sem as aspas), na parte Permitir que todos os usuários desta planilha
possam: deixe selecionado apenas Selecionar células desbloqueadas. Clique em OK, abrirá outra janela para
confirmar a senha, digite “senha” e clique em OK novamente. Tente clicar nas células da planilha. Você só
conseguirá clicar nas células desbloqueadas, alterar o conteúdo das células de valores para qualquer valor e
para as células de unidade apenas para unidades que estão cadastradas, e conseguirá também clicar no botão
Voltar.
Figura 44 – Planilha Clapeyron finalizada
Clique no Botão Voltar, agora iremos trabalhar na planilha Menu.
 Vamos mudar o estilo das caixas de texto, colocar um fundo na planilha e deixar somente as linhas e
colunas necessárias, o resto nós iremos esconder. Selecione a caixa de texto de título (nas células C3:I5)
altere o tamanho da letra para 32, clique em Negrito, escrita branca, texto centralizado e escolha um plano de
fundo cor: Azul, Ênfase 1, Mais escuro 50%.
58. Vamos formatar as 4 caixas de texto do Menu. Selecione as quatro caixas segurando Ctrl, altere o tamanho das
letras para 22,centralize (vertical e horizontal) e clique em Negrito (mantenha preto para as letras). Depoisclique
em Formatar (Ferramentas de Desenho), em Estilos de Forma selecione Efeito Bisel – Malha. Altere a cor do
fundo para Azul, Ênfase 1, Mais claro 60%.
59. Em seguida iremos preencher o fundo da planilha e esconder linhas e colunas. Selecione o grupo de células
B2:J16 e coloque uma borda normal, cor Branco, Plano de fundo I, Mais escuro 25%. Após formatar as bordas
do Menu, clique na coluna L, segure Shift e Ctrl e tecle seta para a direita. Isso selecionará todas as colunas a
partir da coluna L, oculte-as. Selecione a linha 19, segure Shift e Ctrl e tecle seta para baixo e oculte as
linhas. Pronto agora nossa planilha está pronta.
Figura 45 – Planilha Menu finalizada
60. Agora vamos proteger nossa planilha. Clique na aba Início e clique em formatar. Como esta planilha não há
nenhuma célula que precise ser desbloqueada nós vamos proteger a planilha apenas. Clique em Proteger
Planilha, deixe marcado apenas a opção Selecionar células desbloqueadas, na senha coloque “senha” (sem
as aspas), clique em OK, digite novamente “senha” e OK. Pronto nossas planilhas já estão protegidas, faça
alguns testes para ver se está tudo funcionando corretamente. Os botões Van Der Waals e Peng-Robinson
são meramente ilustrativos, mas fica de exercício para você tentar fazer as planilhas de cálculo para eles.
35
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
61. Para finalizar vamos deixar a planilha ainda mais limpa: Vamos esconder os títulos das linhas e das colunas, as
abas das planilhas e as barras de rolagem. Antes, selecione a planilha Menu.
Para o Excel 2007
Botão Office > Opções do Excel > Avançado
Role até encontrar o grupo Exibir opções para esta pasta de trabalho: e desmarque as opções: Mostrarbarra
de rolagem horizontal, Mostrar barra de rolagem vertical e Mostrar guias de planilha. Logo abaixo há: Exibir opção
para estaplanilha: , ao lado aparecerá a planilha que está selecionada. Primeiro selecione a planilha Menu. Desmarque
a opção Mostrar cabeçalhos de linha e coluna e Mostrar linhas de grade. Agora selecione a planilha Clapeyron
e faça o mesmo. Por fim clique em OK. Pronto, nossa planilha com Menu está pronta, agora você pode aplicar esses
conhecimentos para qualquer tipo de menu que precise criar, a questão é por que criar planilhas com Menu? Nem
sempre o usuário da planilha será quem criou a planilha e ainda pode ser que esse usuário não tenha tamanho
conhecimento de planilhas, pelo menu fica fácil, prático e simples para ele navegar pelas abas sem se perder e o mais
importante sem modificar alguma parte da planilha que não poderia ser modificada, portanto existem muitas
aplicações, basta você ser criativo!
36
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Nesta parte do curso, entraremos na parte que envolve programação no Excel utilizando o VBA (Visual Basic for
Applications). A grande vantagem que esse recurso nos traz em relação ao gravador de macros, o qual utilizamos até
agora, é a flexibilidade e maior complexidade dos mecanismos que podemos criar no Excel. Além disso, as macros que
gravamos até agora são, em si, código de VBA que o Excel escreve automaticamente para nós conforme as ações que
realizamos na planilha. Contudo, o gravador não nos permite usar o máximo potencial do Excel, pois sua funcionalidade
ainda é limitada e é por isso que conhecer como o código funciona e poder escrever o seu próprio código é tão
interessante.
Para criar mecanismos no Excel, primeiro devemos conhecer o nosso novo local de trabalho, pois não é na planilha
em que escrevemos códigos, mas sim no Editor do Visual Basic. Para acessar esse local, vá até o friso Desenvolvedor e,
no menu Código, clique em Visual Basic. Alternativamente, use o atalho Alt+F11 e seja bem-vindo ao Editor!
Figura 46 – Acesso ao editor do Visual Basic
Nesta nova janela, vemos, à esquerda, dois locais: Projeto – VBAProject e Propriedades. No primeiro, estão os
elementos que fazem parte do projeto. Já no segundo, encontram-se propriedades dos objetos que podemos vir a
utilizar quando escrevemos um código, mas essa janela será vista de forma mais aprofundada futuramente. Se,
porventura, alguma das duas janelas não estiver ali, é possível visualizá-las clicando, no menu, em Exibir e, em seguida,
clicando em Project Explorer (atalho Ctrl+R) e/ou em Janela ‘Propriedades’ (atalho F4).
Figura 47 – Interface do VBA
Importante: “Projeto” deve ser entendido como o grupo de macros e de planilhas de Excel utilizados para uma
determinada funcionalidade.
37
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
O primeiro passo que devemos executar para criar macros e funções é inserir um Módulo onde podemos codificar.
Para isso, vá ao menu e clique em Inserir e depois em Módulo. Note que na janela Projeto – VBAProject surge um novo
diretório, chamado Módulo1. Se você abrir outro, este será o Módulo2 e assim por diante. Perceba também que foi
aberta uma janela em branco no centro da tela denominada Pasta 1 – MóduloX (Código), em que X é o número do
módulo aplicado e a denominação Pasta1 pode ser substituída pelo nome da planilha que está sendo utilizada. Essa
janela é a interface para a inserção dos comandos, na qual inscrevemos nossos códigos.
Figura 48 – Inserção de um Módulo
Figura 49 – Módulo no VBA
3.2. INTRODUÇÃO À FUNÇÕES NO VBA
A programação em VBA nos traz inúmeras possibilidades, não somente a criação de macros, como a criação de
funções. Já imaginou se algum trabalho ou projeto que você esteja desenvolvendo no Excel necessite do uso de uma
fórmula complexa, que não está no banco de fórmulas, e você precisasse usá-la diversas vezes? Isso o deixa mais
suscetível a cometer erros, além de tornar o trabalho mais tedioso do que ele precisa ser. A realidade é que você é capaz
de criar uma função para tornar essa situação mais prática.
Assim como existem as diversas funções, como SEN(), COS(), SOMA(), entre outras, para as quais tudo o que você
precisa fazer é indicar os parâmetros da função e o Excel retornará o valor que você deseja, você pode criar no VBA uma
função definida pelo usuário que fará o mesmo para a expressão que você quiser.
Vejamos, então, a estrutura mais básica de uma função:
Function NomeDaFunção (Parâmetro1 As Tipo, Parâmetro2 As Tipo, ...) As Tipo
Corpo da função
End Function
38
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Onde NomeDaFunção é o nome que você quer dar a sua função, Parâmetro1, 2,... são os parâmetros requeridos
pela sua função e As Tipo se refere a característica de um parâmetro (dentro do parênteses) ou do valor retornado pela
função (fora do parênteses). Na hora de escrever a função é importante lembrar que o As deve ser mantido e o tipo
deve ser um dos disponíveis na primeira coluna da tabela abaixo:
TIPO DE
DADO
VALORES DESCRIÇÃO
Boolean True ou False
Aceita os valores lógicos verdadeiro
ou falso. Reserva 2 bytes de
memória.
Byte 0 a 255
Armazena valores inteiros,
reservando 1 byte de memória.
Currency [-922.333.203.477,5808 até 922.333.203.477,5808]
Armazena valores monetários e
decimais fixos, reserva 8 bytes.
Date 1/1/1900 a 31/12/9999
Utilizada para armazenar datas e
horas. 8 bytes de memória.
Double
[-1,79769313486232E308 até -4,94065645841247E-324] e
positivos [1,79769313486232E308 até 4,94065645841247E-
324]
Armazena ponto flutuante de dupla
precisão, reservando 8 bytes.
Integer Valores inteiros entre -32.768 até 32.767 Reserva 2 bytes
Single
Valores de -3,402823E38 até -1,401298E-45 e positivos de
1,401298E-45 até 3,402823E38
4 bytes de memória. Armazena
valores de ponto flutuante de
simples precisão
String Textos de 1 até 65.400 caracteres
1 byte de memória por caractere
em cada string
Long
Valores inteiros grandes entre -2.147.483.648 até
2.147.483.647
Reserva 4 bytes
Variant Pode armazenar qualquer tipo de dado
16 bytes de memória + 1 byte por
caractere e aceita qualquer tipo de
dado
Tabela 3 – Tipos de variáveis
Caso você não especifique o tipo de suas variáveis e/ou funções, elas serão automaticamente tratadas como sendo
do tipo Variant, que é o que mais ocupa espaço na memória. Por isso, quando possível, é interessante atribuir tipos
para variáveis de acordo com seu papel no código.
39
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
A seguir, veremos aspectos importantes da linguagem do VBA, aproveitando para ver alguns exemplos de funções.
A declaração de variáveis é o momento em que você deixa indicado no código as variáveis adicionais, ou seja, que
não sejam os parâmetros da função, mas que também serão utilizadas. Fazer isso é opcional, porém, novamente, se
você utilizar uma variável sem declará-la antes, ela será considerada do tipo Variant.
Existem 4 formas de declarar uma variável, são elas:
1. Dim Variável As Tipo
2. Static Variável As Tipo
3. Private Variável as Tipo
4. Public Variável As Tipo
O comando Dim é uma abreviação de Dimension e é usado para declarar variáveis que terão seus valores retidos
apenas enquanto o procedimento em que se encontram estiver sendo usado. Já o valor de uma variável declarada com
Static é válido apenas dentro do procedimento onde se encontra, mas ele será preservado entre as execuções deste.
Private serve para variáveis válidas em todo o Módulo e Public para variáveis que podem ser chamadas por qualquer
procedimento que esteja na pasta de trabalho.
3.4. EXPRESSÕES ARITIMÉTICAS, LÓGICAS E COMPARATIVAS
No corpo de uma função, será necessário relacionar variáveis e/ou números e essas relações são representadas
pelas expressões aritméticas, lógicas e comparativas:
EXPRESSÕES OPERADORES
Aritméticas
+ (adição)
- (subtração)
* (multiplicação)
/ (divisão)
^ (exponenciação)
Lógicas
not (não)
and (e)
or (ou)
equiv (equivalente)
Xor (exclusão entre expressões)
Comparativas
> (maior)
< (menor)
>= (maior ou igual)
<= (menor ou igual)
<> (diferente)
Tabela 4 – Expressões Aritméticas, Lógicas e Comparativas
As expressões aritméticas são as operações que conhecemos (os elementares e a exponenciação).
Já as lógicas são operações em que introduzimos um ou mais símbolos e, conforme o operador desejado,
recebemos um símbolo de resposta. O exemplo mais clássico de símbolo de resposta é o Verdadeiro e Falso. Através
dos operadores lógicos podemos analisar valores, numéricos ou não, conforme desejamos. O Not, o And, o Or e o Xor
são os mais importantes. O primeiro inverte o resultado de uma expressão que possa retornar “Verdadeiro” ou “Falso”,
o segundo retorna valor “Verdadeiro” caso, de duas expressões, ambas sejam verdadeiras e o terceiro, o Or, retorna
40
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
valor Verdadeiro se, de duas expressões, pelo menos uma for verdadeira. Já o último, o Xor, retorna “Verdadeiro”
quando uma e apenas uma de duas expressões seja verdadeira.
As estruturas comparativas seguem um raciocínio parecido com a das lógicas, devolvendo um símbolo de resposta
a cada operação. Porém estruturas comparativas só podem ser usadas para analisar valores numéricos.
Estruturas de controle são o que determinarão o que acontecerá a cada vez que você executar um procedimento.
Caso você não as utilize, o programa lerá o código sempre da mesma maneira, de cima para baixo e da esquerda para a
direita. Contudo, isso por si só não é suficiente para suprir várias das necessidades que temos em determinadas
situações, como no seguinte exemplo.
3.5.1. Else...If
Suponha que você deve criar uma função chamada MaiorQue10() que receba como parâmetro um número
Número e diga se ele é maior que 10. Há duas situações possíveis nesse problema – ou o número é maior que 10 ou ele
não é- logo, o caso deve ser avaliado e conforme o resultado disso, o programa deve executar uma ação e deixar de
realizar a outra. Então, como resolver esse problema? É o que veremos a seguir, com a primeira estrutura de controle
que será apresentada.
O problema apresentado anteriormente requer a escolha de um rumo a ser tomado no código do programa de
acordo com a situação e, nesse caso, a estrutura If será responsável por isso. Veja a seguir a sua sintaxe:
If condição Then
Comandos do If
Else
Comandos do Else
End If
As partes obrigatórias da estrutura foram deixadas sem colchetes. Aqui, condição é uma relação cuja veracidade
será verificada quando a função for executada. Caso ela seja verdadeira, o programa executará os Comandos
imediatamente abaixo; caso ela seja falsa, o programa não executa os comandos subordinados ao If, ao invés disso, ele
sai da estrutura sem realizar nada, a não ser que exista uma estrutura Else. Esta permite que você determine ações que
deverão ser tomadas caso a condição seja falsa. Se essa condição for verdadeira, o Else é ignorado. Por fim, End If é uma
parte obrigatória e indica o fim da estrutura. Assim, uma possível resolução para o problema inicial é a seguinte:
Function MaiorQue10(Número As Single) As String
If Número > 10 Then
MaiorQue10 = "Sim"
'Se o número for maior que 10, a função retorna Sim'
Else
MaiorQue10 = "Não"
'Caso seja menor ou igual a 10, a função retorna Não'
End If
End Function
Observação: No VBA, o apóstrofo pode ser usado para deixar comentários.
41
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Quando o usuário escrever em uma célula “=MaiorQue10(10)” ou inserir a função utilizando 10 como parâmetro,
por exemplo, o programa verificará que 10 não é maior que 10, assim executará o comando de Else ao invés do de If,
retornando “Não”.
Experimente, agora, voltar à planilha e comece a digitar “=MaiorQue10” em uma célula. Você perceberá que sua
função será sugerida assim como as demais funções existentes no Excel. Também é possível utilizar a opção de Inserir
Função, no friso Fórmulas, para usar sua função. Para achá-la mais facilmente, você pode escolher a categoria Definido
pelo Usuário para visualizar funções criadas por você, ou seja, não nativas do Excel.
Veja, agora, outras estruturas úteis.
3.5.2. Select Case
Crie uma função Tarifa() que receba um valor Renda e indique qual a taxa que deve ser paga pelo usuário.
Considere que:
• Rendas de até R$ 2.500,00 apresentam taxa 0;
• Rendas entre R$ 2.500,00 até R$ 5.000,00 sejam taxadas em 5% do valor acima de R$ 2.500,00;
• Rendas acima de R$ 5.000,00 sejam taxadas em 10% no valor acima de R$ 5.000,00 e 5% no valor acima de
R$ 2.500,00.
Esse problema poderia facilmente ser resolvido usando If, porém veremos uma alternativa cujo benefício é a
legibilidade do código, o Select Case. Sua sintaxe é a seguinte:
Select Case Variável/Parâmetro
Case expressões1
Comandos do Case1
Case expressões2
Comandos do Case2
...
Case expressões-n
Comandos do Case’n’
Case Else
Comandos do Else
End Select
Para o Select Case, que, assim como o If, é uma estrutura condicional ou de ramificação, você escolhe uma variável,
que pode ser um dos parâmetros da função ou não, que será usada como base para gerar uma série de condições e
comandos. Caso alguma das expressões seja verdadeira para a variável selecionada, o programa seguirá o comando
subordinado ao respectivo Case, caso contrário, se existir, ele obedecerá ao Case Else, saindo, em seguida, do Select
Case. A resolução do exercício é:
Function Tarifa(Renda As Single) As Single
Select Case Renda
Case Is <= 2500
Tarifa = 0
'Se o valor é menor ou igual a 2500, a tarifa será zero.'
Case Is <= 5000
Tarifa = (Renda - 2500) * 0.05
42
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
'Se o valor é maior que 2500, mas menor que 5000, o valor que excede 2500 é taxado em 5%'
Case Else
'Abrange qualquer intervalo não especificado, no caso, rendamaior que 5000. Vale ressaltar que poderia
ser criado um Case Is > 5000'
Tarifa = (Renda - 5000) * 0.1 + (Renda - 2500) * 0.05
'Se o valor é maior que 5000, o valor que excede 5000 é taxado em 10% e o valor que excede 2500 é
taxado em 5%'
End Select
End Function
Agora você já pode testar a função na planilha!
3.6. ESTRUTURA DO... LOOP
Veremos agora algumas estruturas de repetição ou de laços. Resolva o seguinte problema: Criar uma função
SomaPA() para obter a soma e uma função ProdutoPA() para obter o produto dos termos de uma progressão aritmética
que começa em a1, com n termos e razão r, sendo esses três valores parâmetros da função. Este é um exemplo de um
caso que não é resolvido com algo que vimos até agora, mas que certamente é possível. Veja as possíveis formas e o
funcionamento de uma estrutura Do... Loop:
Do While Condição
Comandos
Loop
Onde Do While e Loop podem ser substituídos por:
5. Do Until (Condição), (Comandos) e Loop
6. Do, (Comandos) e Loop While (Condição)
7. Do, (Comandos) e Loop Until (Condição)
8. While (Condição), (Comandos) e Whend
O que isso significa? Bom, existem 5 maneiras possíveis de usar Do...Loop (While, Until e Wend), como é possível
ver acima, mas o funcionamento de todas é bastante similar. Todas elas seguem o princípio de avaliar uma expressão
e, dependendo se ela for verdadeira ou falsa, o programa repetirá a execução da estrutura ou irá encerrá-la, seguindo
em frente. Nos dois primeiros casos (condição no Do), a condição é avaliada no início da estrutura, antes de executar
os comandos, sendo que o While executa os comandos enquanto a condição for verdadeira e o Until executa até que a
condição se torne verdadeira, ou seja, enquanto ela for falsa. Para as duas outras situações, a análise da condição ocorre
no final da execução, ou seja, os comandos são executados antes e, no mínimo, uma vez. Novamente, o While executa
os comandos enquanto a condição for verdadeira e o Until executa até que a condição se torne verdadeira.
Veja o exemplo com Do While... Loop:
Function SomaPA(a1 As Integer, R As Integer, n As Integer)
Dim c As Integer
c = 1
Do While c <= n
'Quando c é maior que o número de termos, a operação é encerrada'
SomaPA = SomaPA + a1
43
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
'Como não foi especificado um valor para SomaPA, é assumido o valor de O. Assim, na primeira iteração, é
somado 0 ao valor inicial de a1.'
a1 = a1 + R
'A cada iteração o valor de a1 é incrementado, passando a a2, a3 e assim por diante, por mais que o nome da
variável seja mantido o mesmo.'
c = c + 1
'Por fim, é incrementado o contador.'
Loop
End Function
A função tratada, SumPA, se trata da soma dos termos de uma PA. Consiste em uma função cujos parâmetros
iniciais são o primeiro termo da PA (a1), a razão na qual aumenta essa PA (r) e o número de termos que devem ser
somados a partir do primeiro. Também é declarada uma variável c que seria nosso contador. Tal variável nos ajudará a
ter um controle do número de interações rodadas pelo Do...While.
Depois da declaração do contador, ocorre o primeiro teste da condição c <= n. Caso tal condição seja verdadeira,
é executado SumPA = SumPA + a1, onde a1 = a1 + r e, por fim, c = c + 1. Agora temos que o atual valor de c é diferente
de seu valor inicialmente atribuído, então o Loop faz com que retornemos para a condição do Do...While e ela é testada
novamente.
Como é possível ver na tabela abaixo, definindo a1 = 1 e r = 2, podemos obter diversos valores de SumPA para
diversos valores de n selecionados pelo usuário. Lembrando: a função retorna como resultado a variável homônima, ou
seja, SumPA e nenhuma das células relacionadas ao cálculo desse resultado tem seu valor alterado.
Interação (n) 0 1 2 3 4 5
c 1 2 3 4 5 6
a1 1 1 3 5 7 9
SumPA 0 1 4 9 16 25
Tabela 5 – Resultados de SumPA para diferentes valores de n
Uma coisa importante de ser salientada é que, como não foi atribuído nenhum valor inicial para SumPA, seu valor
inicial é dado como 0. Isso é perceptível na tabela acima, uma vez que para n = 0 temos que a condição do Do...While
é falsa na primeira checagem e o valor retornado é SumPA = 0.
3.7. ESTRUTURA DO FOR... NEXT
Dessa vez resolveremos o mesmo problema, mas o faremos de outra forma, utilizando outra estrutura de
repetição, o For...Next:
For variável = valor inicial To valor final [Step valor]
Comandos
Next variável
A lógica neste caso é a seguinte: variável é uma variável (parâmetro ou não da função) que você deve escolher,
assim como um valor inicial valori e um valor final valorf para ela. Quando o programa for executado, se o valor
associado ao Step for positivo, ele verificará se valori > valorf e se o Step for negativo, a avaliação será se valori < valorf.
Para ambas as situações, caso a análise retorne falso, ele prosseguirá para os comandos e para o Next. O que acontece
agora é que o valor da variável será incrementado/decrementado com o valor do passo (caso o passo não seja escrito,
ele será, automaticamente, considerado 1) retornando, em seguida, à leitura do código ao For, repetindo esse processo
até que valori > valorf ou, se for o caso, valori < valorf seja verdadeiro, momento em que a estrutura será encerrada.
Repare que, nesse caso, não informamos o número de termos e, sim, um intervalo de a1 até an. Veja o exemplo
para o problema em questão:
44
Apostila do Minicurso de VBA
PET – Engenharia Química – UFPR – 2020/01
Function ProdutoPA(a1 As Integer, R As Integer, n As Integer)
Dim c As Integer
ProdutoPA = 1
'É necessário estabelecer o valor inicial da função como 1, por tratar-se de uma multiplicação de termos. Se isso
não fosse realizado, o resultado seria sempre 0.'
For c = 1 To n
ProdutoPA = ProdutoPA * a1
a1 = a1 + R
Next c
End Function
A análise dessa função nos dá o seguinte: é usada uma variável c que age como variável de controle, ou seja, seu
valor dita as ações na estrutura. Então, se estabelece, no For, que o valor inicial de c é igual a 1 pois o contador de
termos em uma progressão aritmética começa com n = 1. E o valor final é o parâmetro n. Nesse caso o passo da
ferramenta For é 1, podendo ser omitido na declaração. A análise feita é aquela apresentada anteriormente e, caso o
resultado seja falso, é executado a estrutura dentro do For e, depois, o Next retorna a leitura do programa ao For,
repetindo o ciclo até que a avaliação retorne o valor verdadeiro.
Importante: Não foi considerado a existência de restrições nos exemplos, porém existe um cuidado que se deve
tomar ao usar estruturas de repetição: é evitar a todo o custo a criação de ciclos infinitos. Um ciclo infinito significa
criar uma estrutura que nunca chega a sua condição de término, o que pode gerar erros catastróficos no Excel, podendo
até forçá-lo a reiniciar o programa. Por isso, essas estruturas devem ser bem pensadas antes de serem usadas! Ainda,
existe o comando chamado Exit, que pode ser usado com diversas estruturas, como Select, Do, For, oumesmo Function,
para fazer com que o programa saia de uma estrutura caso este código for lido, o que pode ajudar a evitar os laços
infinitos.
Essas são algumas das estruturas básicas do VBA. Não são as únicas, mas com elas já é possível fazer muita coisa,
basta um pouco de criatividade e raciocínio lógico!
3.8. EXERCÍCIOS
Exercício 3.1. Este exercício se refere a Termodinâmica AplicadaI. Após sair de um reator, uma determinada
vazão de Amônia (NH3) passa por um trocador de calor. Sabendo que a temperatura de saída é 373,15 K, e que
a pressão de operação é 30 atm, calcule a vazão volumétrica que sairá do reator utilizando a equação de estado
de Van Der Waals. A vazão mássica de NH3 é de 2000 Kg/h. Dados:
Vazão
mássica (kg/h)
Tc (K) T (K)
Pc
(atm)
P
(atm)
R (m³
atm/kmol K)
Erro
M
(kg/kmol)
2000 405,6 373,15 111,3 30 0,082 0,00001 17,03
Tabela 6 – Dados do Exercício de Termodinâmica Aplicada I
Para resolver esse exercício, necessitamos saber qual a equação de estado de Van der Waals que é descrita como:
𝑃 =
𝑅 × 𝑇
(𝑉 − 𝑏)
− (
𝑎
𝑉2
)
Sendo que os fatores 𝑎 e 𝑏 são dados por:
𝑎 =
27
67
×
(𝑅 × 𝑇𝑐)2
𝑃𝑐
𝑏 =
𝑅 × 𝑇𝑐
8𝑃𝑐
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1

Mais conteúdo relacionado

Semelhante a Apostila minicurso de vba iii - 2020.1

Basico dovba excel_tutorial1
Basico dovba excel_tutorial1Basico dovba excel_tutorial1
Basico dovba excel_tutorial1
Carlos Adriano Rosa
 
Macro br
Macro brMacro br
Macro br
Ari ferreira
 
Apostila_MATLAB.pdf
Apostila_MATLAB.pdfApostila_MATLAB.pdf
Apostila_MATLAB.pdf
LucasCardoso162679
 
Curso de Macros en Excel (VBA)
Curso de Macros en Excel (VBA)Curso de Macros en Excel (VBA)
Curso de Macros en Excel (VBA)
UNASP
 
Sobre as Macros
Sobre as MacrosSobre as Macros
Sobre as Macros
Gabriel Faustino
 
Apostila matlab
Apostila matlabApostila matlab
Apostila matlab
Gustavo Ribeiro
 
Curso de Informática p/ Concurso MP-RJ
Curso de Informática p/ Concurso MP-RJCurso de Informática p/ Concurso MP-RJ
Curso de Informática p/ Concurso MP-RJ
Estratégia Concursos
 
Aula 02 programação_c_alunos
Aula 02  programação_c_alunosAula 02  programação_c_alunos
Aula 02 programação_c_alunos
Joice Souza
 
Macros Excel
Macros ExcelMacros Excel
Macros Excel
Adrisson
 
Trabalho
TrabalhoTrabalho
Trabalho
Adrisson
 
Artigo do microsoft mathematic
Artigo do microsoft mathematicArtigo do microsoft mathematic
Artigo do microsoft mathematic
Diomedes Manoel
 
Contrato aprendizagemcamtasiaatudio aalmeida_1006475_18_06_16v3
Contrato aprendizagemcamtasiaatudio aalmeida_1006475_18_06_16v3Contrato aprendizagemcamtasiaatudio aalmeida_1006475_18_06_16v3
Contrato aprendizagemcamtasiaatudio aalmeida_1006475_18_06_16v3
malmeidaUAB
 
Módulo 08 macros em excel
Módulo 08   macros em excelMódulo 08   macros em excel
Módulo 08 macros em excel
Gilberto De Oliveira Mendes
 
Bonificação natalina abc
Bonificação natalina abcBonificação natalina abc
Bonificação natalina abc
Uanderson Coelho
 
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Anderson Kanegae Soares Rocha
 
Curso Maquete eletrônica Aula1
Curso Maquete eletrônica Aula1Curso Maquete eletrônica Aula1
Curso Maquete eletrônica Aula1
Cleber Gouveia
 
Apostila de matlab
Apostila de matlabApostila de matlab
Apostila de matlab
Dilson Junior
 
Apostila de matlab
Apostila de matlabApostila de matlab
Apostila de matlab
Elizângela Reboucas
 
Apresentação elementos de máquinas aulas de 01a 25
Apresentação   elementos de máquinas aulas de 01a 25Apresentação   elementos de máquinas aulas de 01a 25
Apresentação elementos de máquinas aulas de 01a 25
Dió Carvalho
 
Guia Matlab
Guia MatlabGuia Matlab
Guia Matlab
Rodrigo Silva
 

Semelhante a Apostila minicurso de vba iii - 2020.1 (20)

Basico dovba excel_tutorial1
Basico dovba excel_tutorial1Basico dovba excel_tutorial1
Basico dovba excel_tutorial1
 
Macro br
Macro brMacro br
Macro br
 
Apostila_MATLAB.pdf
Apostila_MATLAB.pdfApostila_MATLAB.pdf
Apostila_MATLAB.pdf
 
Curso de Macros en Excel (VBA)
Curso de Macros en Excel (VBA)Curso de Macros en Excel (VBA)
Curso de Macros en Excel (VBA)
 
Sobre as Macros
Sobre as MacrosSobre as Macros
Sobre as Macros
 
Apostila matlab
Apostila matlabApostila matlab
Apostila matlab
 
Curso de Informática p/ Concurso MP-RJ
Curso de Informática p/ Concurso MP-RJCurso de Informática p/ Concurso MP-RJ
Curso de Informática p/ Concurso MP-RJ
 
Aula 02 programação_c_alunos
Aula 02  programação_c_alunosAula 02  programação_c_alunos
Aula 02 programação_c_alunos
 
Macros Excel
Macros ExcelMacros Excel
Macros Excel
 
Trabalho
TrabalhoTrabalho
Trabalho
 
Artigo do microsoft mathematic
Artigo do microsoft mathematicArtigo do microsoft mathematic
Artigo do microsoft mathematic
 
Contrato aprendizagemcamtasiaatudio aalmeida_1006475_18_06_16v3
Contrato aprendizagemcamtasiaatudio aalmeida_1006475_18_06_16v3Contrato aprendizagemcamtasiaatudio aalmeida_1006475_18_06_16v3
Contrato aprendizagemcamtasiaatudio aalmeida_1006475_18_06_16v3
 
Módulo 08 macros em excel
Módulo 08   macros em excelMódulo 08   macros em excel
Módulo 08 macros em excel
 
Bonificação natalina abc
Bonificação natalina abcBonificação natalina abc
Bonificação natalina abc
 
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
 
Curso Maquete eletrônica Aula1
Curso Maquete eletrônica Aula1Curso Maquete eletrônica Aula1
Curso Maquete eletrônica Aula1
 
Apostila de matlab
Apostila de matlabApostila de matlab
Apostila de matlab
 
Apostila de matlab
Apostila de matlabApostila de matlab
Apostila de matlab
 
Apresentação elementos de máquinas aulas de 01a 25
Apresentação   elementos de máquinas aulas de 01a 25Apresentação   elementos de máquinas aulas de 01a 25
Apresentação elementos de máquinas aulas de 01a 25
 
Guia Matlab
Guia MatlabGuia Matlab
Guia Matlab
 

Último

MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptxMAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
Vilson Stollmeier
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
Consultoria Acadêmica
 
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptxWorkshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
marcosmpereira
 
Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...
Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...
Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...
carlos silva Rotersan
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL  INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL  INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
Consultoria Acadêmica
 
AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024
AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024
AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024
Consultoria Acadêmica
 
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
Consultoria Acadêmica
 

Último (7)

MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptxMAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
 
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptxWorkshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
 
Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...
Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...
Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL  INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL  INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
 
AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024
AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024
AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024
 
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
 

Apostila minicurso de vba iii - 2020.1

  • 2. 2 UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE TECNOLOGIA DEPARTAMENTO DE ENGENHARIA QUÍMICA PET – PROGRAMA DE EDUCAÇÃO TUTORIAL MINICURSO DE VBA 2020/01 GRUPO PET ENGENHARIA QUÍMICA Ana Carla Corrêa Machado Andreas Schwambach Bruna Derlan Bruna da Rosa Meller Edson Yuji Suzuki Fernanda Dias Couto Guilherme Frasato Bastos Luana Aparecida Pereira Lucas Godinho Cassemiro Correa Luís Felipe Bavati Medri Marcelo Luis Hostins Filho Marco Andrey Salle Filho Maryna Bornemann da Silva Paulo Vitor de Lima Carvalho TUTOR Prof. Dr. Carlos Alberto Ubirajara Gontarski Curitiba 2020
  • 3. 3 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/1 UNIVERSIDADE FEDERAL DO PARANÁ GRUPO PET ENGENHARIA QUÍMICA 1ª Edição - 2014/02 Guilherme Augusto Silva Surek Marcelo Yuji Tamura Edições posteriores Beatriz Fernanda Rossin Gabriel Souza Bonaroski Geovana Mara Cieslinski Guilherme Augusto da Silva Surek Larissa Brunetta Guzzi Pedro Luís Felipe Mendes Bussola Marcelo Yuji Tamura Pedro Henrique Bonato Kuss Thiago Nishimura Thomas Gabriel Balduíno Reckelberg Victor Matheus Mahl Revisão final Ana Carla Corrêa Machado Bruna Derlan Guilherme Frasato Bastos Marco Andrey Salle Filho
  • 4. 4 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Sumário 1 ................................................................................................................................................. 5 1. MACROS .............................................................................................................................................. 5 1.1. COMO CRIAR UMA MACRO ..................................................................................................... 5 1.2. COMO HABILITAR A GUIA DESENVOLVEDOR NO SEU OFFICE .................................................. 5 1.3. EXERCÍCIOS .............................................................................................................................. 7 CAPÍTULO 2 ................................................................................................................................................15 2. APLICAÇÃO DE MACROS E FUNÇÕES ..................................................................................................15 2.1. EXERCÍCIOS .............................................................................................................................15 CAPÍTULO 3 ................................................................................................................................................36 3. A PROGRAMAÇÃO EM VBA ................................................................................................................36 3.1. O EDITOR DO VBA...................................................................................................................36 3.2. INTRODUÇÃO À FUNÇÕES NO VBA .........................................................................................37 3.3. DECLARANDO VARIÁVEIS........................................................................................................39 3.4. EXPRESSÕES ARITIMÉTICAS, LÓGICAS E COMPARATIVAS .......................................................39 3.5. ESTRUTURAS DE CONTROLE....................................................................................................40 3.6. ESTRUTURA DO... LOOP ..........................................................................................................42 3.7. ESTRUTURA DO FOR... NEXT ...................................................................................................43 3.8. EXERCÍCIOS .............................................................................................................................44 CAPÍTULO 4 ................................................................................................................................................46 4. USERFORMS E SUB-ROTINAS..............................................................................................................46 4.1. USERFORMS............................................................................................................................46 4.2. ORIENTAÇÃO AO OBJETO........................................................................................................47 4.3. SUB-ROTINAS..........................................................................................................................48 4.4. VETORES E MATRIZES..............................................................................................................48 4.5. EXERCÍCIOS .............................................................................................................................50 REFERÊNCIAS BIBILIOGRÁFICAS .................................................................................................................70
  • 5. 5 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 MACROS Uma macro é uma sequência de comandos (cliques de mouse ou toques de teclado) que são gravados em um Módulo VBA e podem ser executados sempre que necessário. A grande vantagem de gravarmos uma sequência de comandos é que poderemos utilizá-la posteriormente e para isso basta executar a macro na qual foi gravada a sequência de comandos. As macros são uma excelente opção para automatizar tarefas repetitivas. 1.1. COMO CRIAR UMA MACRO Com o uso de macros temos um ganho de produtividade considerável ao evitar que tenhamos que executar manualmente os diversos passos de uma tarefa. Existem duas maneiras distintas para a criação de uma macro: 1. Gravador de macros: Nesse caso, o Excel grava cada uma das ações que farão parte da Macro e transforma essas ações nos comandos VBA equivalentes. Quando a macro for executada, os comandos VBA é que serão efetivamente executados, pois cada comando VBA corresponde a uma ação efetiva da macro. 2. Uso do VBA: A partir do momento em que você domina a linguagem VBA, poderá criar a macro digitando os comandos VBA necessários. Isso é feito usando o Editor de VBA, conforme veremos nas próximas lições. 1.2. COMO HABILITAR A GUIA DESENVOLVEDOR NO SEU OFFICE A Guia Desenvolvedor é a responsável por nos mostrar as ferramentas de VBA dentro do Excel e para podermos utilizá-la, às vezes, precisamos primeiro, habilitá-la. Para a versão 2007: 1. Clique no Botão Office no canto superior esquerdo; Figura 1 – Botão office para versão 2007 2. Em seguida clique em Opções do Excel; Figura 2 – Opções do Excel para a versão 2007 3. Na tela que abriu, selecione a aba Mais Usados e marque a opção Mostrar guia Desenvolvedor na Faixa de Opções;
  • 6. 6 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Figura 3 – Habilitar desenvolvedor na versão 2007 4. Para finalizar clique em OK. Para as versões mais atuais como 2010, 2013 e 2016: 1. Vá a guia arquivo do office em que deseja começar sua macro; Figura 4 – Botão arquivo nas versões 2010 e 2013 2. Selecione Opções; Figura 5 – Botão opções nas versões 2010 e 2013 3. Agora selecione Personalizar faixa de opções; Figura 6 – Opção "Personalizar Faixa de Opções" 4. Duas colunas serão abertas. Na coluna da esquerda habilite a opção Desenvolvedor.
  • 7. 7 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Figura 7 – Opção "Desenvolvedor" Dessa maneira, a guia Desenvolvedor estará disponível na pasta de trabalho. 1.3. EXERCÍCIOS Exercício 1.1. Este exercício possui o objetivo de ensinar o usuário a criar as suas primeiras macros. Siga os passos a seguir. 1. Abra a Pasta de Trabalho Exercício 1.1; 2. Selecione a célula A1; 3. Entre na guia Desenvolvedor, no menu Código e escolha Gravar Macro; Figura 8 – Interface do grupo código do Desenvolvedor Figura 9 – Gravação da macro 4. Esta tela serve para identificação da Macro que iremos criar; a) No campo Nome da macro devemos escrever um nome sem conter espaços vazios. Neste exemplo daremos o nome de MinhaPrimeiraMacro; b) O campo Tecla de atalho serve para nomear um comando de atalho para execução da sua macro, neste campo digite i (minúscula);
  • 8. 8 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 c) O campo Armazenar macro em serve para indicar onde será armazenada a macro que está sendo criada: i. Pasta de trabalho pessoal de macros: Você salvará a macro em seu computador e poderá usá-la em qualquer pasta de trabalho do Excel. A macro será gravada na pasta do Excel de nome Personal.xlsb; ii. Nova pasta de trabalho: A macro poderá ser usada em todas as novas pastas de trabalho criadas depois desta; iii. Esta pasta de trabalho: A macro só poderá ser utilizada nesta pasta de trabalho; d) Selecione a opção Esta pasta de trabalho; e) O campo Descrição serve para em um breve parágrafo você identificar a utilidade da macro para caso alguém ou você mesmo que irá utilizá-la futuramente saiba seu funcionamento; f) Escreva o seguinte: Esta macro serviu para me ensinar a gravar macros. 5. Em seguida clique em OK. 6. Agora faça exatamente o que for pedido, pois tudo que fizer será gravado pela macro. Escreva na célula que está selecionada: “Essa macro não serve para nada” 7. Pressione a tecla Enter. Em seguida, pressione o botão Parar gravação. Figura 10 – Botão Parar gravação 8. Agora vamos executar a macro que criamos. Apague o conteúdo da célula A1 e selecione-a. Primeiro iremos utilizar a tecla de atalho que digitamos: Segure CTRL e pressione i. Apague novamente o conteúdo da célula A1 e selecione-a. Se você esquecer qual foi o atalho que você criou para executar sua macro, vá ao menu Código na guia Desenvolvedor e selecione Macros. Na janela que se abriu, selecione a macro MinhaPrimeiraMacro e clique no botão Executar. 9. Clique novamente em Macros, selecione a macro MinhaPrimeiraMacro e clique em Editar. Essa é a tela do Visual Basic, a qual apresenta o código da macro que criamos. Além disso, nela podemos criar macros diretamente a partir de códigos, pois toda macro seja ela gerada pelo gravador ou escrita é um código, o qual é uma série de comandos que serão executados pelo Excel para atingir o objetivo pelo qual a macro foi gerada. Dessa maneira, o código gerado é o seguinte: Sub MinhaPrimeiraMacro() ' ' MinhaPrimeiraMacro Macro Essa macro me ensinou a fazer macros ' 'Atalho do teclado: Ctrl+i ' Range (“A1”) .Select ActiveCell.FormulaR1C1 = “Essa macro não serve para nada” Range (“A2”) .Select End Sub
  • 9. 9 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Na primeira linha temos: Sub MinhaPrimeiraMacro (). O termo sub indica o início de uma sub-rotina, no caso, de nossa macro e MinhaPrimeiraMacro é o nome desta macro. Nas demais linhas iniciadas com apóstrofe simples e em verde estão as características digitadas na tela de início da gravação da macro, tais como Nome, Descrição e Tecla de Atalho. Nas demais linhas seguintes em preto temos o código da macro, o procedimento que será executado pelo Excel. Nossa primeira ação foi digitar “Essa macro não serve para nada”, então foi gravado o seguinte código: ActiveCell.FormulaR1C1 = " Essa macro não serve para nada ". Um dos modos principais que o Visual Basic funciona é especificando um objeto e daí então uma ação a ser imposta ao objeto. É por isso que o Visual Basic é chamado de linguagem orientada ao objeto. ActiveCell é um objeto, a célula ativa. O Excel precisa trabalhar com itens os quais ele conheça, ou seja, seus objetos, tais como Planilhas, Células, Pastas etc. Então quando queremos efetuar uma ação precisamos definir em qual objeto será feito esta. Em seguida tem um ponto seguido de FormulaR1C1 que se refere aoconteúdo doobjeto selecionado, cujo qual define a ação. Depois = seguido de “Essa macro não serve para nada”, ou seja, estamos fazendo uma atribuição ao conteúdo do objeto. Algumas ações requerem uma atribuição, por exemplo, definir o conteúdo de uma célula ou definir o valor de uma variável. Portanto estamos atribuindo a frase ao conteúdo da célula ativa. Na próxima linha temos: Range("A2"). Select que foi referente ao Enter que teclamos após digitar a frase. Range () também é um objeto, que pode ser uma célula ou um intervalo de células. Ponto e Select é a ação a ser feita com o objeto. Então temos: Selecionar a Célula A2, que foi o que fizemos ao teclar Enter. Observação: Perceba que o Excel entendeu o Enter por um comando de seleção da célula A2 e não como ir para a célula abaixo da célula ativa, quando gravamos uma macro desta forma o Excel grava as referências das células e não o comando em si. No caso ele gravou a célula e não o comando ir para baixo, por assim dizer. Por fim, o comando End sub indicará ao Excel que o código de sua macro acaba aqui. 10. Agora clique em outra célula e execute a macro novamente. Perceba que independente da célula que você selecionar, o Excel sempre terminará selecionando a célula A2, como vimos no código da macro. 11. Para fazer com que depois de escrever o conteúdo na célula o Excel selecione a célula diretamente abaixo da célula ativa vamos gravar outra macro. 12. Limpe a área de trabalho e clique no botão Gravar Macro. 13. Nome da Macro: MinhaSegundaMacro. Tecla de Atalho: o (minúsculo). Armazenar em: Esta pasta de trabalho. 14. Clique na opção Usar Referências Relativas e, note que ela fica selecionada, ou seja é uma opção que “liga e desliga”. 15. Escreva na célula ativa: Esta macro utiliza Referência Relativa., em seguida, pressione Enter. 16. Clique em Parar Gravação. 17. Agora, vamos executar a segunda macro para ver a diferença. Perceba como essa macro adiciona um texto à célula ativa e depois seleciona a célula diretamente abaixo dela. Veremos adiante como essa ferramenta é útil. Exercício 1.2. Carlos quer controlar seu saldo bancário através de uma planilha do Excel, ao invés de sempre tirar o extrato no banco. Então, vamos criar uma macro que facilite esse processo para Carlos. Ele preparou uma tabela para colocar a Entrada e Saída de dinheiro em sua conta, a data dessas movimentações e o saldo remanescente. Figura 11 – Tabelas do exercício 2
  • 10. 10 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 1. Abra a pasta de trabalho Exercício 1.2. Carlos preparou uma tabela para colocar a entrada e saída de dinheiro em sua conta, a data dessas movimentações e o saldo remanescente. 2. Vamos fazer uma macro que automatize o processo de colocar os dados na tabela e calcular o saldo final. Inicie a gravação. Outra forma de iniciar a gravação da macro é pelo botão situado na barra inferior do Excel. Figura 12 – Botão para iniciar gravação de macros 3. Agora vamos ordenar a célula da data, para que Carlos não precise corrigi-la toda vez que quiser fazer um novo lançamento. Vamos utilizar uma função do Excel chamada HOJE(), para inserir uma função teclamos = e depois escrevemos o nome da função, enquanto você escreve o nome da função o Excel já disponibiliza para você todas as funções disponíveis que começam com aquelas iniciais. Para selecionar a função é só pressionar a tecla TAB. O Excel também disponibiliza uma breve descrição do que aquela função faz. A função HOJE() copia a data do seu computador na célula selecionada e a formata como data. Figura 13 – Inserção da função "Hoje" 4. Então podemos começar a gravar a macro. O Nome da Macro será CalcularSaldo, a Tecla de Atalho será y (minúsculo). Armazenar macro: nesta pasta de trabalho. Descrição: automatização do controle financeiro de Carlos. 5. Vamos começar selecionando as informações da primeira tabela, essa primeira tabela só serve para inserir os dados, depois de executada a macro irá transferir esses dados para a segunda tabela e a primeira ficará em branco para que a próximamovimentação seja inserida. Com as células B7:D7 selecionadas copiamos o conteúdo delas pressionando Crtl+C e clicamos na célula B9. 6. Em seguida vamos no friso Desenvolvedor e clicamos na opção Usar Referências Relativas. Repare que a opção ficou selecionada, ou seja, é uma opção que “liga e desliga”. Pressione a seta para baixo novamente. 7. Agora segurando CTRL pressionamos a seta para baixo, esse comando fará com que o Excel percorra a coluna da célula ativa até encontrar a última célula com conteúdo. Se a célula selecionada estivesse vazia, o Excel iria percorrer a coluna até encontrar a primeira célula com conteúdo. Outra maneira de realizar esse comando é pressionar a tecla End e depois pressionar a direção na qual você deseja ir, no caso do exercício, para baixo. A ferramenta Usar Referência Relativa serve para o Excel não gravar a célula em si, mas sim os comandos que você usou, ou seja, ao invés de ele gravar selecionar a célula B9, quando apertou a seta para a baixo, ele gravará selecionar a célula abaixo da célula ativa. 8. Estando a célula B11 selecionada, vamos usar a opção do Excel Colar Especial, escolhendo a opção Valores e Formatação de Número. Dessa forma o Excel não vai copiar a fórmula HOJE() da Data, mas somente o valor da data, mantendo a formatação da célula em data. 9. Agora, com a opção Usar Referências Relativas ainda selecionada, pressionamos a tecla seta para a direita três vezes, deixando a célula E11 como célula ativa. Podemos desativar a opção Usar Referências Relativas. 10. Agora, vamos fazer uma fórmula para calcular o saldo final, pressionamos a tecla = e selecionamos a célula do saldo anterior (E10), mais a entrada (C11) menos a saída de dinheiro (D11). Clicando Enter o Excel calcula o valor do saldo final. 11. Então, só falta limpar a primeira tabela. Selecionamos C7:D7 e pressionamos a tecla Delete para deletar seu conteúdo. A macro está pronta, podemos parar a gravação. 12. Coloque outros valores de entrada e saída para executar a macro, e note que mesmo se uma das células estiver em branco a macro funciona normalmente.
  • 11. 11 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Exercício 1.3. Crie uma macro chamada Agenda que copie os dados de uma pessoa da primeira tabela e cole na tabela abaixo e, além disso, a macro deve classificar os contatos existentes em ordem alfabética. 1. O passo a passo do exercício é muito semelhante ao do exercício 2, com a diferença de ter que ordenar as linhas por sequência alfabética. Assim, os passos abaixo orientam apenas a resolução a partir do momento em que as linhas são ordenadas. 2. Após as informações de nome, e-mail e telefone serem coladas, o botão de referência relativa deve ser desativado. 3. Toda a tabela, representando a matriz I6:K50 deve ser selecionada. 4. No friso Página inicial no grupo Edição, deve-se clicar na opção Classificar e Filtrar, selecionando a opção Classificar de A a Z. Figura 14 – Opção "Classificar e Filtrar" 5. Após isso, os conteúdos das células I3:K3 podem ser deletados para que uma nova entrada possa ser digitada. 6. Com isso, a gravação da macro pode ser encerrada. 7. Insira novos dados e teste a macro. Exercício 1.4. Você é funcionário de uma empresa e preparou uma planilha com os lançamentos financeiros desse ano, no entanto, seu chefe não gostou da formatação da planilha e solicitou que você elaborasse uma macro com as seguintes mudanças: a. Os meses devem estar em itálico, centralizados e com fundo transparente. b. Os dados financeiros devem estar em exibição no modo "moeda". c. O título deve ser mesclado e centralizado, em negrito, branco e com fundo azul petróleo escuro, texto 2. d. As células Mês, Entrada, Saída e Lucro devem estar em negrito, preta, centralizadas e com fundo azul petróleo escuro, texto 2, mais claro 80%. e. Todas as células devem estar contornadas com espessura normal, cor da linha: branco, plano de fundo 1, mais escuro 25%. Assim, sua macro deve ser capaz de formatar todas as antigas planilhas de lançamentos também, com todas no mesmo padrão. Figura 15 – Tabela do exercício 4 1. Abra a pasta de trabalho Exercício 1.4. Na pasta, existe uma tabela com os lançamentos financeiros mensais, a qual deve ser configurada e formatada para melhor visualização, além das tabelas antigas de lançamento financeiro.
  • 12. 12 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 2. No grupo código da guia Desenvolvedor clique em Usar Referências Relativas, clique na célula B12 e em seguida em Gravar Macro. O Nome poderá ser FormatarTabela, ativada pelo atalho Ctrl+Shift+f, e a descrição será Essa macro serve para formatar tabelas. 3. A partir disso, com o comando no teclado, aperte quatro vezes a seta para baixo, de forma a parar na célula B16. Com o comando Ctrl+Shift+Seta para baixo selecione as células B16:B19 (meses), na guia Página Inicial nos grupos Fonte e Alinhamento clique nas opções itálico, centralizar e deixe o fundo como está (transparente). Figura 16 – Itálico e Centralizar selecionados 4. Aperte uma vez a seta para a direita, efetue o comando Ctrl+Shift+Seta para direita e em seguida Ctrl+Shift+Seta para baixo de forma a selecionar todos os valores de entrada, saída e lucro e mude a exibição para a forma de Moeda no grupo Número. Figura 17 – Exibição na forma "Moeda" 5. Apertando a seta para cima duas vezes e em seguida a seta para a direita duas vezes, selecionando a célula E14, para então selecionar todo o título com o comando Ctrl+Shift+Seta para esquerda. Então clique na opção Mesclar e Centralizar em Alinhamento, deixe a escrita em negrito, branca e o fundo azul petróleo escuro, texto 2. Figura 18 – Título da tabela 6. Apertando seta para baixo e em seguida Ctrl+Shift+Seta para esquerda, selecione as células B15:E15 e centralize os textos, deixe o texto em negrito e pinte o fundo de azul petróleo escuro, texto 2, mais claro 80%. Figura 19 – Opções a serem selecionadas para a formatação da linha 7. Selecione toda a tabela, altere a cor da linha da tabela para Branco, Plano de fundo 1, Mais escuro 25% e selecione a opção Todas as bordas, de maneira que o resultado seja o seguinte:
  • 13. 13 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Figura 20 – Tabela final 8. Assim, pode-se parar a gravação da macro. 9. Como existem outras tabelas disponíveis, a macro deve ser testada nelas, de maneira que todas possuam a mesma formatação, lembre-se, a referência relativa utilizada é de 2 células para cima do título. Exercício 1.5. Ana utiliza uma Pasta do Excel para controlar as vendas mensais de sua mercearia. Ela está perdendo muito tempo tendo que fazer os novos lançamentos e copiar os antigos para a planilha do Histórico. Ajude Ana criando uma macro que a faça ganhar tempo, que faça tudo que ela precisa sozinho. Ana utiliza três planilhas para fazer o controle de suas vendas: a planilha Vendas, a qual mostra as vendas dos últimos seis meses; a planilha Lançamentos, na qual é lançado as informações mensais das vendas; e a planilha Histórico, onde são armazenadas as informações mais antigas. Procedimento de Ana: Recortar as informações do mês mais antigo da Planilha Vendas, colar na Planilha Histórico na sequência, arrastar uma coluna para a esquerda as informações dos últimos cinco meses que sobraram na planilha Vendas, recortar as informações da planilha Lançamentos e colar na Planilha Vendas na sequência, usar a ferramenta preencher para colocar a data e manter as formatações originais. Figura 21 – Abas da pasta de trabalho do exercício 5 1. Vamos criar uma macro que faça todo o processo para Ana automaticamente. Antes de iniciar a gravação de nossa macro selecione a planilha Lançamento. 2. Nome da Macro será LançamentoDeVendas. A Tecla de Atalho será d (minúsculo). Armazenar macro em Esta pasta de trabalho, a Descrição será: Automatização do procedimento da Ana. 3. Agora vamos recortar as vendas do mês mais antigo e colar na planilha Histórico. Selecione a Planilha Vendas. 4. Selecione o grupo de células B8:B14 e recorte. 5. Selecione a planilha Histórico. 6. Vamos selecionar a primeira coluna vazia desta planilha, no entanto, nós sabemos que a primeira coluna vazia é a coluna E, mas o Excel não, e como será um procedimento automático que a cada nova execução a coluna vazia mudará, deveremos utilizar alguns comandos específicos. 7. Selecione a célula A1, segure CTRL e pressione a seta para direita, o Excel vai selecionar a última célula com conteúdo da linha. 8. Clique na aba Desenvolvedor e na ferramenta Usar Referências Relativas, pressione a seta para direita. 9. Ao utilizar a Ferramenta de Referência Relativa, o Excel ao invés de gravar a célula E1 quando apertou a seta para a direita vai gravar a célula à direita da célula ativa. Portanto, independente de quantas vezes você executar esta macro ele lançará as informações da Planilha Vendas sempre em uma coluna vazia da planilha Histórico. 10. Cole o conteúdo. 11. Acerte a largura da coluna com um duplo clique na linha entre as colunas E e F. Dessa forma ela se auto ajustará e em qualquer situação será possível ver o conteúdo dela. 12. Clique novamente na ferramenta Usar Referências Relativas, agora ela não ficará mais selecionada.
  • 14. 14 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 13. Acabamos de concluir o processo de transferência dos lançamentos antigos para a planilha Histórico, agora vamos transferir o lançamento do mês para a planilha de Vendas. 14. Selecione a planilha Vendas, novamente. 15. Selecione o grupo de células C8:G14. 16. Arraste para B8:F14. 17. Selecione a planilha Lançamentos. 18. Selecione o grupo de células de B1:B6 e recorte. 19. Selecione a planilha Vendas e Cole em G9. 20. Selecione F8, clique no quadradinho preto na ponta da célula e arraste para G8, replicando a progressão. 21. Selecione o grupo de células G9:G14 e formate as bordas e selecione a categoria Moeda. 22. Selecione a planilha Lançamentos. 23. E por fim clique em Parar Gravação, pode ser feito tanto pelo atalho na barra inferior ou pela aba Desenvolvedor. 24. Agora clique em desfazer até que não seja mais possível clicar neste botão. 25. Selecione a planilha Lançamentos e utilize nossa tecla de atalho para executar a macro. Pressione CTRL+d. 26. Verifique se o processo foi efetuado corretamente. 27. Volte à planilha Lançamentos. 28. Digite outras informações na tabela de lançamento. 29. Execute novamente a macro e verifique os lançamentos.
  • 15. 15 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 APLICAÇÃO DE MACROS E FUNÇÕES Neste capítulo iremos focar em exercícios para a plicar o conhecimento de macros gravadas aprendido anteriormente. Além disso, será introduzida a função PROCV. 2.1. EXERCÍCIOS Exercício 2.1. Relatório da Gerência: uma empresa utiliza uma planilha do Excel para controlar o funcionamento do seu reator principal. Nesta planilha são lançadas informações diárias do reator e estas devem ser analisadas pela gerência para averiguar a situação da produção diária, a eficiência de seus equipamentos e a sua manutenção. Para isso, os gestores devem avaliar algumas questões como nível de eficiência, nível da temperatura e nível da pressão, no entanto, as informações estão lançadas em uma única tabela e todas misturadas. Para ajudar na gestão desta indústria, devemos criar um relatório que os ajude a visualizar as informações que são lançadas na planilha. Veja um modelo que os ajudaria: Figura 22 – Modelo do Relatório da Gerência A empresa entende como normalidade: pressão igual a 20 atm, temperatura igual a 300ºC; e eficiência entre 84% e 85%. Portanto, anormalidade seriam as demais condições possíveis. Neste exercício abordaremos os seguintes tópicos: layout e estilos, botões, botões de opção, caixa de combinação, filtro avançado, remover duplicatas, macros. 1. Abra a Pasta de Trabalho Relatório da Gerência. 2. Para facilitar as coisas, vamos dividir nosso procedimento em etapas. Primeira Etapa será montar o Layout do Relatório. Selecione a planilha Relatório da Gerência. 3. Clique com o botão direito no número 1 na linha 1 e selecione altura da linha. Digite 9 e tecle Enter. 4. Selecione o grupo de células B2:K28 e clique com o botão direito sobre esta área e selecione formatar células....
  • 16. 16 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 5. Selecione a guia Borda, na tabela dos Estilos, selecione o penúltimo da coluna da esquerda, mude a cor para: Branco, Plano de fundo 1, Mais escuro 25%. 6. Clique em Contorno e clique em OK ou tecle Enter. Agora temos a base do nosso layout: Figura 23 – Layout do Relatório 7. Agora precisamos saber a largura da coluna do relatório, para isso selecione a planilha Lançamentos. 8. Selecione o grupo de células de B3:G3. Tecle Ctrl+C. 9. Selecione a planilha Relatório da Gerência. 10. Selecione o grupo de células de D3:I3. Tecle Ctrl+Alt+V (atalho para Colar Especial). 11. Na tela do Colar Especial selecione a opção Largura da Coluna e Tecle Enter. Figura 24 – Colar Especial 12. Agora temos as larguras certas do relatório, só precisamos acertar as larguras laterais. Selecione as colunas B e C, pressione Ctrl e selecione as colunas J e K. Clique com o botão direito sobre uma destas quatro colunas e selecione Largura da Coluna.... Digite 5 e Tecle Enter. 13. Vamos inserir o Título do Relatório, selecione as células D3:I5 e mescle.
  • 17. 17 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 14. Digite Relatório da Gerência. Formate a fonte para Cambria (Títulos), tamanho 28, e cor do texto Branco e cor do fundo Azul, Ênfase 1, Mais escuro 50%. 15. Em seguida selecione o grupo de células C17:J27. Clique com o botão direito dentro da área selecionada e clique em Formatar células.... 16. Selecione a guia Borda, na tabela dos Estilos, selecione o penúltimo da coluna da esquerda. 17. Clique na caixa da cor e selecione: Branco, Plano de fundo 1, mais escuro 25%, e em seguida clique em Contorno, depois clique em OK ou tecle Enter. Até agora temos: Figura 25 – Layout do Relatório - Parte 2 18. Vá para o friso exibir, e selecione as linhas de grade. 19. Agora iremos para a Segunda Etapa do nosso procedimento, seleção de botões. 20. Os Botões se encontram na guia do desenvolvedor, no grupo Controles, em Inserir: Figura 26 – Botões
  • 18. 18 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Figura 27 – Descrição dos Botões 21. Selecione uma Caixa de Grupo. Coloque-a na região E7:F10. 22. Clique com o botão direito em cima da Caixa e abra Formatar controle. 23. Em tamanho, escolha altura 1,50cm e largura 5cm. 24. Alinhe sua Caixa de grupo, para que ela fique rente às margens superior e esquerda da célula D7. 25. Dando dois cliques sobre o texto “Caixa de grupo 1”, troque o nome para “Turno:”. Clique fora da área da caixa e verifique a alteração. 26. Agora selecione uma Caixa de Combinação. Coloque-a no centro na Caixa de Grupo “Turno:”. 27. Selecione uma nova Caixa de Grupo. Coloque-a na região da metade da G7 até H10. 28. Abra o Formatar controle, altere o tamanho da mesma forma que na Caixa de grupo anterior e alinhe a Caixa com as margens superior e direita da célula I7. 29. Troque o nome para “Pressão:”. Clique fora da área da caixa e verifique a alteração. 30. Selecione um Botão de Opção. Coloque-o dentro da segunda Caixa, posicionado na metade superior. Posteriormente será inserido outro botão metade inferior da mesma Caixa. 31. Troque o nome para “Normalidade”. Clique fora da área da caixa e verifique a alteração. 32. Selecioneum novoBotãodeOpção.Coloque-odentrodacaixadapressão,nametade inferior da Caixa. Você pode mover os botões deixando-os alinhados. 33. Troque o nome para “Anômalo”. Clique fora da área da caixa e verifique a alteração. 34. Selecione uma nova Caixa de Grupo. Coloque-a na região E12:F15. Abra o Formatar controle e escolha o mesmo tamanho da primeira Caixa de grupo. Alinhe a Caixa rente às margens superior e esquerda da célula D11. 35. Troque o nome para “Temperatura:”. Clique fora da área da caixa e verifique a alteração. 36. Posicione dois Botões de Opção dentro da caixa da Temperatura. Um com o nome “Normalidade” e outro com o nome “Anômalo”.
  • 19. 19 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 37. Selecione a última Caixa de Grupo. Posicione-a na região na metade do G12 até a H15. Abra novamente o Formatar controle, escolha o mesmo tamanho da primeira Caixa, feche e alinhe a Caixa com as margens superior e direita da célula I11 38. Troque o nome para “Eficiência:”. Clique fora da área da caixa e verifique a alteração. 39. Posicione dois Botões de Opção dentro da caixa da Eficiência. Um com o nome “Normalidade” e outro com o nome “Anômalo”. 40. Até o momento você deve ter algo parecido com: Figura 28 – Layout com Botões posicionados 41. Assim terminamos a parte de posicionamento dos botões. 42. Agora iremos para a Terceira Etapa, configuração dos botões. 43. Primeiro Botão a ser configurado será a Caixa de Combinação do Turno. Esta caixa precisa de valores de entrada para serem mostrados na lista, para isso vamos selecionar os turnos existentes na planilha de Lançamentos. 44. Selecione a planilha Lançamentos. 45. Selecione a coluna C e copie-a. 46. Selecione a planilha Apoio. 47. Selecione a coluna I e cole. 48. Com a coluna I ainda selecionada, clique na guia Dados e seguida selecione Remover Duplicatas no grupo Ferramentas de Dados. 49. Clique em OK, e em seguida o Excel mostrará um aviso com a quantidade de itens que foram removidos e a quantidade de itens que foram mantidos, clique em OK novamente. 50. Agora nós temos os valores de entrada para o nosso botão. 51. Em seguida iremos montar uma tabela de apoio para o filtro. 52. Ainda na planilha Apoio, selecione o grupo de células A1:E3. 53. Clique com o botão direito e clique em Formatar Células.
  • 20. 20 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 54. Na guia Borda, Selecione aborda fina (última da coluna da direita) e selecione acor:Branca, Planodefundo 1, Mais escuro 25% e clique em Interna e em 55. Contorno. Clique em OK. 56. Selecione a planilha Lançamentos. Selecione as células C3, E3, F3 e G3. E copie. 57. Retorne a planilha Apoio. Selecione o grupo de células A1:D1. Tecle Ctrl+Alt+V e Selecione o grupo Colar a opção Valores. Clique em OK. 58. Selecione a célula D1 e copie para a célula E1, selecione D3:E3 e Mescle as células. 59. Selecione a planilha Relatório da Gerência. 60. Clique com o botão direito na Caixa de Combinação dentro do grupo “Turno:”, e selecione 61. Formatar Controle. Figura 29 – Formatar Controle 62. Clique na seta vermelha ao lado de Intervalo de Entrada. 63. Selecione a planilha Apoio. 64. Selecione o grupo de células I3:I6 e tecle Enter. 65. Agora nós precisamos indicar onde será lançado o valor retornado pelo botão, ou seja, o valor que o usuário selecionou. 66. Clique na seta vermelha ao lado de Vínculo da Célula. 67. Selecione a planilha Apoio. 68. Selecione a Célula A3 e tecle Enter. 69. A opção linhas suspensas indica a quantidade máxima de opções que podem aparecer, enquantoasdemais ficaram escondidase podem ser visualizadas pelabarra de rolagem do botão. 70. A opção Sombreamento 3D é meramente estética, selecione-a. 71. Em seguida clique em OK. 72. Clique em outro local fora do botão para desmarcá-lo e use-o, verifique se nossa lista está aparecendo. Selecione a opção 00:00.
  • 21. 21 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 73. Selecione a planilha Apoio. 74. Veja que temos um 1 na célula A3, este valor vem do retorno do botão. Os botões retornam valores que são contagens, por exemplo, temos opção A e opção B, se selecionarmos a opção A, ele retornará 1, se selecionarmos a opção B, ele retornará 2. Porém para usarmos o filtro temos que ter o nome da opção e não a contagem, para isso usaremos uma função que transcreve a contagem para a opção selecionada. 75. Para usarmos esta função precisamos fazer algumas configurações: 76. Selecione o grupo de células H3:H6 e coloque bordas simples. 77. Selecione o grupo de células H2:I2 e mescle. 78. Selecione H3 e digite 1, Selecione H4 e digite 2, Selecione H5 e digite 3 e Selecione H6 e digite4. Centralize os números. Figura 30 – Tabela Turnos 79. Agora iremos escrever a função. Selecione a Célula A2. Altere o formato da célula para hora no campo número. 80. Digite =PROCV(Esta fórmula é uma fórmula de procura, então, ela receberá um valor que deverá ser procurado A3;. Este valor será procurado na primeira coluna de uma matriz H3:I6. Tendo encontrado o valor na matriz, ela retornará um valor correspondente de uma das colunas desta linha, no caso da coluna 2. E tecle Enter para finalizar nossa função. Então temos =PROCV(Apoio!A3;Apoio!H3:I6;2), sendo Apoio! a definição da planilha onde se encontram as células selecionadas. Sintaxe da Função: Figura 31 – Sintaxe Função PROCV 81. Agora vamos configurar os demais botões. 82. Selecione a planilha Relatório da Gerência. 83. Clique com o botão direito no botão Normalidade do grupo Pressão e selecione Formatar Controle. 84. Temos uma tela parecida com a do botão de combinação, porém este não possui entrada de dados. 85. Clique na seta vermelha ao lado de Vínculo da Célula. 86. Selecione a planilha Apoio, selecione a Célula B3 e tecle Enter. 87. Marque a opção sombreamento 3D e clique em OK. 88. Agora clique com o botão direito no botão Anômalo ainda do grupo Pressão e selecione Formatar Controle. 89. Perceba que o Vínculo da Célula já está preenchido, pois ambos os botões estão na mesma Caixa de Grupo, então compartilham das mesmas configurações, no entanto o sombreamento 3D não vem marcado, então selecione-o e clique em OK. 90. Repita o mesmo procedimento para Temperatura, porém no Vínculo de Célula selecione Apoio!C3, e para Eficiência, selecione Apoio!D3. 91. Ainda na planilha Relatório da Gerência, selecione todas as opções Normalidade. 92. Selecione a planilha Apoio.
  • 22. 22 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 93. Agora temos que criar as funções para Pressão, Temperatura e Eficiência. 94. Selecione a Célula B2. 95. Agora tente pensar em como podemos fazer essa função. Dica: Use a função SE. 96. 90. Digite =SE(B3=1;20;”<>20”). Sintaxe da função: Figura 32 – Sintaxe da Função SE 97. Fazemos um teste lógico, B3=1, ou seja, se a opção marcada foi Normalidade. Se verdadeiro, retorna o valor 20, pressão na normalidade, se falso, retorna <>20 (Diferente de 20). Perceba que o número nós podemos digitar normal, já número com operadores temos que colocar entre aspas. Obs: Dados no início do Exercício. 98. Agora façamos para a temperatura. Selecione C2. 99. Tente montar a função, sozinho, primeiro. 100. 95. Digite =SE(C3=1;300;”<>300”). 101. Mesmo processo, fazemos um teste lógico, C3=1, ou seja, se a opção marcada também foi Normalidade. Se verdadeiro, retorna o valor 300, temperatura na normalidade, se falso, retorna 102. <>300 (Diferente de 300). 103. Por fim vamos fazer a função para a eficiência, no entanto esta é um pouco diferente pois sua normalidade é um conjunto de valores entre 84% e 85%, por isso teremos que fazer duas funções, uma para o limite superior e uma para o limite inferior. Novamente, tente pensar na função. 104. Selecione a Célula D2. 105. 99. Digite =SE(D3=1;”>=84%”;”<84%”). 106. 100.Selecione a Célula E2. 107. 101.Digite =SE(D3=1;”<=85%”;”>85%”). Agora já temos nosso filtro configurado, e ao alterar os botões ele altera automaticamente, as configurações do filtro. 108. Agora vamos criar nossa macro que fará uma pesquisa automática. 109. Selecione a planilha Apoio. 110. Clique em gravar macro. 111. Nome da Macro: RelatóriodaGerência 112. Tecla de Atalho: R (maiúsculo), ou seja, Ctrl+Shift+R. 113. Armazenar macro em: Esta pasta de trabalho. 114. Descrição: Macro de busca automática do Relatório da Gerência. 115. Clique em OK. 116. Selecione a planilha Relatório da Gerência. 117. Selecione a guia Dados e selecione Avançado no grupo Classificar e Filtrar:
  • 23. 23 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Figura 33 – Filtro Avançado 118. Marque a opção Copiar para outro local. 119. Clique na seta vermelha ao lado de Intervalo da lista. 120. Selecione a planilha Lançamentos, selecione o grupo de células B3:G63 e tecle Enter. 121. Clique na seta vermelha ao lado de Intervalo de Critérios. 122. Selecione a planilha Apoio, selecione o grupo de células A1:E2 e tecle Enter. 123. Agora clique na seta vermelha ao lado de Copiar para. 124. Selecione o grupo de células D18:I26 (Desta própria planilha – Relatório da Gerência) e tecle Enter. 125. Clique em OK. 126. Clique em Parar gravação. 127. Agora para finalizar nosso relatório vamos criar um botão. Clique na guia do Desenvolvedor, Inserir e selecione o Botão (o primeiro). 128. Posicione-o na região I14:J16. 129. Ao soltar o botão aparecerá a seguinte tela: Figura 34 – Macro do Botão
  • 24. 24 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 130. Selecione a macro Relatório da Gerência e clique em OK. 131. Altere o nome do Botão para Procurar. Finalizamos nosso Relatório, faça alguns testes e verifique o relatório. Não se esqueça de ir em macros e ver o código gerado pela macro que gravamos para associar os comandos aos códigos. Exercício 2.2. Menu de Equações: Sílvio está perdendo muito tempo fazendo cálculos repetitivos: “sempre as mesmas equações, sempre os mesmos cálculos, a única coisa que muda são os números.”. Para resolver este problema, Sílvio teve a ideia de montar uma planilha programada com todas as equações que ele precisa, onde ele lança os valores das variáveis e retorna o valor do resultado na unidade que precisar. Sílvio usa as seguintes equações: Clapeyron, Van der Waals e Peng-Robinson. Monte um menu com as três equações e crie o mecanismo de cálculo da equação de Clapeyron. Neste exercício abordaremos os seguintes tópicos: Fórmulas e combinações defórmulas; Macros simples; Botões; Layout e Design; Validação de Dados; Associar macros a imagens e formas; Hiperlinks; Bloquear Planilhas, desbloquear células, bloquear estrutura da pasta de trabalho; Aprender a efetuar cálculos complexos que dependem de informações do usuário; Nomear células; Antes de iniciarmos o exercício vamos construir uma linha de raciocínio do que precisaremos fazer: Etapa 1: Conhecer a Equação de Clapeyron e buscar as informações de conversão. Nesta Etapa, iremos pesquisar entender a equação de Clapeyron, suas variáveis, como elas funcionam e como é a fórmula. Em seguida buscaremos os fatores de conversão para cada unidade que precisarmos de acordo com a demanda da fórmula, e lançaremos esses dados em uma planilha de apoio. Etapa 2: Desenvolver o mecanismo de funcionamento da equação de Clapeyron. Aqui montaremos a estrutura da fórmula, vamos desenvolver toda a parte de cálculo e conversões, relacionando tudo isso com as células que receberão informações do usuário. Etapa 3: Criar o Menu de Equações. Nesta Etapa criaremos a planilha de Menu, seus botões, as macros e hiperlinks. Etapa 4: Trabalhar no Layout e Design. Nesta etapa deixaremos a planilha com um layout agradável e bloquearemos as estruturas da planilha que o usuário não deverá mexer. Agora mãos à obra! 1. Abra a Pasta de Trabalho Exercício 2.2. OBS: Se caso você não tiver esta pasta de trabalho não tem problema, você pode abrir um novo arquivo e seguir o exercício. Caso você tenha a planilha do exercício em mãos, as planilhas para realizar o exercício já estão criadas e você pode pular o passo 2. 2. A primeira Etapa do nosso exercício diz respeito à Equação de Clapeyron e fatores de conversão. Então vamos criar duas planilhas. Tecle Shift+F11 ou clique em Inserir Planilha (Ao lado da planilha Enunciado do Exercício). Renomeie a primeira planilha para Clapeyron e a segunda planilha para Apoio. A primeira planilha servirá para receber informações do usuário e fazer os cálculos, já a segunda servirá somente como apoio para esta primeira, guardará informações como os fatores de conversão e outras que forem necessárias. 3. Selecione a planilha Apoio. 4. Agora iremos montar nossas tabelas de conversão. A Equação de Clapeyron (PV=nRT) possui quatro variáveis e uma constante. Para facilitar nossas conversões vamos estabelecer um valor para a constante e fixar suas unidades. R = 8,314 J. mol − 1. K − 1
  • 25. 25 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 J = N. m = N. m − 2.m3 = Pa. m3 Portanto,nossasunidadesbasesserão:pressãoemPascal (Pa), volumeemmetrocúbico (m³), quantidade de matéria em mol e temperatura em Kelvin (K). Definido nossas unidades bases, precisaremos definir com quais outras unidades trabalhar e quais serão seus fatores de conversão. Nesse exercício serão utilizadas as seguintes unidades:  Pressão: Pa, bar, kPa, Psia, atm, torr;  Volume: m³, cm³, L, ft³, in³, gal;  Quantidade de Matéria: mol, kmol;  Temperatura: K, °C, °F, R; Agora precisamos buscar nossos fatores de conversão. Para isso usaremos uma tabela de conversões. Grandeza Conversão Comprimento 1 m = 100 cm 1 m = 3,280084 ft 1 m = 39,3701 in Volume 1 m³ = 1000 L 1 m³ = 264,1722 gal Pressão 1 bar = 105 N.m-2 1 bar = 105 Pa= 102 kPa 1 bar = 0,986923 atm 1 bar = 14,5038 psia 1 bar = 750,061 torr Quantidade de Matéria 1mol=10-3kmol Temperatura 𝑇(𝐾) = 273 + 𝑇(º𝐶) 𝑇(𝐾) = (𝑇(º𝐹) + 459,67) × 5 9 𝑇(𝐾) = 𝑇(𝑅𝑎) 1,8 Tabela 1 – Conversão de Unidades 5. Agora que temos as informações podemos lançá-las na nossa planilha Apoio. Iremos fazer uma tabela de conversão com os fatores de conversão que nós precisamos. Na célula A1 escreva “Tabela de Conversões”, na célula A2 escreva “Unidade”, na célula B2 escreva “Fator Multiplicador”, na célula C2 escreva “Fator Soma” e na célula D2 escreva “Unidade” novamente. 6. Na Coluna A vamos escrever todas as unidades que iremos trabalhar. Comece na célula A3 digitando “Pa”, prossiga com as demais unidades bar, kPa, psia, atm, torr, m³, cm³, L, ft³, in³, gal, mol, kmol, K, °C, °F, R até a célula A20. 7. Agora vamos criar os fatores de conversão. Veja que podemos fazer funções para a conversão de unidades do tipo P(Pa)=X*P(bar) por exemplo. E os fatores de conversão serão os X’s das funções. Como desejamos converter qualquer unidade de Pressão para Pascal, pois será a nossa unidade base dos cálculos, os fatores de pressão serão para conversão em Pa. Os fatores de Volume serão para m³, Quantidade de Matéria para mol e Temperatura para Kelvin(K). Veja a tabela abaixo:
  • 26. 26 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Função Fator Multiplicador Fator Soma 𝑷(𝑷𝒂) = 𝟏 × 𝑷(𝑷𝒂) 1 - 𝑷(𝑷𝒂) = 𝟏𝟎𝟓 × 𝑷(𝒃𝒂𝒓) 105 - 𝑷(𝑷𝒂) = 𝟏𝟎𝟎𝟎 × 𝑷(𝒌𝑷𝒂) 1000 - 𝑷(𝑷𝒂) = 𝟏𝟎𝟓𝟏𝟒, 𝟓𝟎𝟑𝟖 × 𝑷(𝒑𝒔𝒊𝒂) 10514,5038 - 𝑷(𝑷𝒂) = 𝟏𝟎𝟓𝟎, 𝟗𝟖𝟔𝟗𝟐𝟑 × 𝑷(𝒂𝒕𝒎) 1050,986923 - 𝑷(𝑷𝒂) = 𝟏𝟎𝟓𝟕𝟓𝟎, 𝟎𝟔𝟏 × 𝑷(𝒕𝒐𝒓𝒓) 105750,061 - 𝑽(𝒎𝟑) = 𝟏 × 𝑽(𝒎𝟑 ) 1 - 𝑽(𝒎𝟑) = 𝟏𝟎−𝟔 × 𝑽(𝒄𝒎𝟑 ) 10−6 - 𝑽(𝒎𝟑) = 𝟏𝟎−𝟑 × 𝑽(𝑳) 10−3 - 𝑽(𝒎𝟑) = 𝟏 (𝟑, 𝟐𝟖𝟎𝟎𝟖𝟒)𝟑 × 𝑽(𝒇𝒕𝟑 ) 1 (3,280084)3 - 𝑽(𝒎𝟑) = 𝟏 (𝟑𝟗, 𝟑𝟕𝟎𝟏)𝟑 × 𝑽(𝒊𝒏𝟑 ) 1 (39,3701)3 - 𝑽(𝒎𝟑) = 𝟏 𝟐𝟔𝟒, 𝟏𝟕𝟐𝟐 × 𝑽(𝒈𝒂𝒍) 1 264,1722 - 𝑸𝑴(𝒎𝒐𝒍) = 𝟏 × 𝑸𝑴(𝒎𝒐𝒍) 1 - 𝑸𝑴(𝒎𝒐𝒍) = 𝟏𝟎𝟑 × 𝑸𝑴(𝒌𝒎𝒐𝒍) 103 - 𝑻(𝑲) = 𝟏 × 𝑻(𝑲) + 𝟎 1 0 𝑻(𝑲) = 𝑻(º𝑪) 𝟏 + 𝟐𝟕𝟑, 𝟏𝟓 1 273,15 𝑻(𝑲) = 𝑻(º𝑭) 𝟏, 𝟖 + 𝟒𝟓𝟗, 𝟔𝟕 𝟏, 𝟖 1 1,8 459,67 1,8 𝑻(𝑲) = 𝑻(𝑹) 𝟏, 𝟖 1 1,8 0 Tabela 2 – Conversões de Unidades Figura 35 – Nomeando células
  • 27. 27 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 8. No campo Nome digite “UnidadesPressão”, verifique se o campo Refere-se a: está igual ao da figura acima, e clique em OK. Selecione o grupo de células A9:A14 e clique em Definir Nome 9. estamos selecionando um grupo de células para o campo Refere-se a: já vir preenchido. No campo Nome digite “UnidadesVolume” e clique em OK. Selecione o grupo de células A15:A16, clique me Definir Nome, em Nome digite “UnidadesQuantidadeDeMatéria” e clique em OK. Selecione o grupo de células A17:A20, clique em Definir Nome, em Nome digite “UnidadesTemperatura” e clique em OK. Por fim, vamos dar nome à tabela, pois a usaremos mais tarde, selecione o grupo de células A3:D20, clique em Definir Nome, em Nome digite “TC” – Tabela de Conversões – e clique em OK. 10. Finalizado a configuração da planilha Apoio vamos montar o layout da Equação. Selecione a planilha Clapeyron. 11. Agora precisamos montar o layout do cálculo da planilha. Precisaremos receber três variáveis e uma “incógnita” para calcular, o R será fixo. Para facilitar nossos cálculos vamos estipular que a “incógnita” é um “?”, então no campo do valor da variável que queremos calcular digitamos “?”. Portanto precisaremos de um campo para o valor de cada variável, um campo para a unidade de cada variável, um campo para o tipo de resposta, o valor da resposta e a unidade da resposta. Vamos escrever PV=nRT para situar os campos na planilha. 12. Selecione o grupo de células B7:C8 e mescle. Escreva “P”. 13. Selecione o grupo de células D7:E8 e mescle. Escreva “V”. 14. Selecione o grupo de células F7:F8 e mescle. Escreva “=”. 15. Selecione o grupo de células G7:I8 e mescle. Escreva “n”. 16. Selecione o grupo de células J7:K8 e mescle. Escreva “R”. 17. Selecione o grupo de células L7:N8 e mescle. Escreva “T”. 18. Selecione o grupo de células B7:N8, mude o tamanho da letra para 22 e deixe em Negrito, escolha também um fundo cor: Azul, Ênfase 1, Mais claro 80%. Agora vamos explicitar os campos de valores e de unidades. 19. Na célula B9 digite “Pressão”, na célula C9 digite “Unid.”, na célula D9 digite “Volume”, na célula E9 digite “Unid.”. Selecione o grupo de células G9:H9, mescle e digite “Qtde de Mat.”. Na 20. célula I9 digite “Unid.”, na célula J9 digite “R”, na célula K9 digite “Unid.”. Selecione o grupo de células L9:M9, mescle e digite “Temperatura”, na célula N9 digite “Unid.”. Selecione o grupo de células B9:N9 e centralize o alinhamento do texto. 21. Selecione os grupos de células B10:B11, C10:C11, D10:D11, E10:E11, F10:F11, G10:H11, I10:I11, J10:J11, K10:K11, L10:M11, N10:N11, P6:S6; P7:Q7; R7:S7 e mescle. Veja que se você selecionar tudo irá mesclar tudo e o objetivo é mesclar cada grupo, para fazer tudo de uma vez você pode selecionar o primeiro grupo, segurar Ctrl e selecionar os demais, um por um. Em seguida você clica em mesclar. 22. Selecione os grupos de células C16:E17, F16:F17, G16:H17, I16:I17 e mescle. Seguindo a mesma ideia do item acima. A região de B10:N11 será onde o usuário irá informar os valores, as unidades e a variável a ser calculada, colocando um “?”. A região C16:I17 será onde o resultado será mostrado. Vamos escrever o valor da Constante dos Gases, que fixamos, embaixo de R e colocar sua unidade. Na célula J10 escreva “8,314” e na célula K10 escreva “J/mol.K”.
  • 28. 28 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Figura 36 – Layout da Equação de Clapeyron Por ora, não se preocupe com a estética da sua planilha comparada às imagens da apostila. Trabalharemos nisso nos últimos itens do exercício. 23. Mais uma vez, vamos definir alguns nomes de células para facilitar nossos cálculos e diminuir nossas fórmulas. Selecione a célula B10, clique em Definir Nome na aba Fórmulas e em Nome digite “PU” – valor da Pressão que o Usuário digitou – como nosso intuito é diminuir o tamanho de fórmulas os nomes devem ser o mais curto possível, clique em OK. Selecione a célula C10, defina o nome “UPU”; Para célula D10, “VU”, célula E10 defina “UVU”, célula G10 defina “nU”, célula I10 defina “UnU”, célula L10 defina “TU”, célula N10 defina “UTU” e célula I13 defina “UR” Unidade da Resposta. Assim finalizamos a primeira Etapa do nosso processo. 24. Agora que temos o layout da nossa Equação, sabemos por onde receberemos os dados, onde mostraremos o resultado, e já temos uma planilha de apoio com as conversões de unidades que precisamos, iremos montar o mecanismo que efetuará os cálculos, a nossa Etapa 2. Veja que não é tão simples por mais que seja PV=nRT. Precisamos receber informações, interpretar quais são os valores a serem usados nos cálculos e qual é a variável a ser isolada, converter as unidades para as nossas unidades bases do cálculo, efetuar o cálculo, converter o resultado para a unidade que o usuário solicitou e, por fim, mostrar o resultado. Para os locais onde o usuário digitará os valores não há nada a ser feito, ele apenas deve digitar os valores que deseja e colocar “?” na variável que deseja calcular. No entanto, nascélulas que ele deverá colocar as unidades ele deve tomar o cuidado para colocar apenas unidades que temos na nossa tabela de conversões, pois caso contrário nós não conseguiremos efetuar o cálculo. Agora, é mais confiável acreditar que o usuário tomará esse cuidado ou restringi-lo a utilizar apenas unidades que temos em nosso banco de dados? Lembre-se que quando vamos desenvolver uma planilha nem sempre sabemos quem estará do outro lado operando-a, portanto, temos que partir do pressuposto de que o usuário não entende nada de Excel. 25. Para fazer essa restrição usaremos uma Validação de Dados. Selecione a célula C10, clique na aba Dados e clique em Validação de Dados do grupo Ferramentas de Dados. Nós iremos criar uma lista suspensa para que o usuário possa selecionar uma unidade permitida, ou simplesmente digitá-la. No campo Permitir selecione Lista. No campo Fonte digite “=UnidadesPressão”, local onde está disposta a relação de todas as unidades de pressão que estamos considerando (na Planilha Apoio conjunto de células A3:A8). Clique na aba Alerta de Erro, no campo Título digite “Erro na Unidade” e no campo Mensagem digite“Unidade digitada não se encontra no banco dedados.”. Tecle OK.
  • 29. 29 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Figura 37 – Validação de Dados Clique na célula C10 e veja que agora ela mostra uma seta para baixo, clique na seta e veja as opções de unidades de pressão. 26. Vamos repetir esse procedimento para Volume, Quantidade de Matéria e Temperatura. Tente fazer esse procedimento seguindo o mesmo procedimento anterior, o que irá mudar é a fonte, lembre-se dos nomes que definimos lá na Etapa 1 – UnidadesVolume, UnidadesQuantidadeDeMatéria e UnidadesTemperatura. Selecione a célula E10. Clique em Validação de Dados. No campo Permitir selecione Lista, no campo Fonte digite “=UnidadesVolume” na aba Alerta de Erro, no campo Título digite “Erro na Unidade” e no campo Mensagem digite “Unidade digitada não se encontra no banco de dados.”. Tecle OK. Selecione a célula I10. Clique em Validação de Dados. No campo Permitir selecione Lista, no campo Fonte digite “=UnidadesQuantidadeDeMatéria”, na aba Alerta de Erro, no campo Título digite “Erro na Unidade” e no campo Mensagem digite “Unidade digitada não se encontra no banco de dados.”. Tecle OK. Selecione a célula N10. Clique em Validação de Dados. No campo Permitir selecione Lista, no campo Fonte digite “=UnidadesTemperatura”, na aba Alerta de Erro, no campo Título digite “Erro na Unidade” e no campo Mensagem digite “Unidade digitada não se encontra no banco de dados.”. Tecle OK. 27. Feitas as devidas restrições, já temos definido os locais que o usuário irá utilizar, agora vamos montar o cálculo. Para efetuarmos o cálculo usando o R que definimos precisamos deixar todos os valores que o usuário digitar nas unidades do R, para isso iremos converter os valores que o usuário digitar, independente se o valor já está na unidade base ou não e por isso colocamos as unidades bases na tabela de conversão e seus fatores de conversão como 1, e jogar esse valor convertido em uma outra célula. Mas como iremos fazer a conversão? Vamos receber a unidade que o usuário digitou, procurar o fator de conversão referente a ela e efetuar a conversão. Para isso vamos utilizar a mesma função que usamos no Exercício 5 – Relatório da Gerência, a função PROCV. Sintaxe da Função: Figura 38 – Sintaxe Função PROCV O valor procurado será a unidade indicada pelo usuário, a matriz será a tabela de conversão de unidades – TC –, o índice da coluna será 2 (para o fator multiplicador) ou 3 (para o fator soma) e o último item colocaremos FALSO. Isso significa que a função irá até a nossa tabela e procurará o valor na primeira coluna, encontrado esse valor ela fixará a linha em que o valor se encontra e irá retornar o valor que se encontra na segunda (para 2) ou terceira (para 3)
  • 30. 30 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 coluna da tabela nesta linha do valor encontrado. O Falso significa que buscará na primeira coluna um valor que seja idêntico ao valor procurado, se fosse Verdadeiro ele buscaria um valor próximo, caso o valor correto não tenha sido encontrado. 28. Para converter o valor, vamos multiplicá-lo pelo fator multiplicador e, no caso da temperatura, somar o fator soma. Selecione a célula B13 e digite “=PU*PROCV(UPU;TC;2;FALSO)” (as aspas no início e no final da fórmula só indicam onde começa a fórmula e onde termina, não fazem parte da fórmula, usaremos essa sinalização). O PU é o valor que o usuário irá digitar – lembra quando definimos os nomes? -, e o resto é o fator de conversão que a nossa fórmula irá retornar – a fórmula procurará o valor de UPU exato na tabela TC e retornará o valor da 2 coluna. Assim teremos um valor de pressão sempre em Pascal na célula B13. Perceba que a célula ficou assim “#N/D”. O “#” significa que houve um erro e o N/D significa que algum valor não foi encontrado. Como colocamos FALSO na função PROCV e ele não encontrou o valor zero, que está na célula C10 neste momento, na tabela que selecionamos - a tabela de conversões -eleretornou esse erro. Para não deixar acélula com erro vamos usar outra função, chamada SEERRO. Sintaxe da Função: Figura 39 – Sintaxe Função SEERRO Selecione a célula B13 novamente. Tecle F2 para acessar o conteúdo da célula. E digite “=SEERRO(PU*PROCV(UPU;TC;2;FALSO); "")” (não esqueça que as aspas do início e do final não entram na fórmula, as no meio sim) e tecle ENTER. Ou seja, se encontrar um valor, retornará o valor, se não encontrar e retornará “” (Vazio). Veja que agora a célula ficou vazia. 29. Na célula C13 escreva “Pa”, para não gerar dúvidas. 30. Agora vamos fazer o mesmo para o Volume, a Quantidade de Matéria e a Temperatura. Tente fazer as fórmulas sozinho(a), entender o que fizemos para a pressão e replicar isso para as demais. Na célula D13 digite “=SEERRO(VU*PROCV(UVU;TC;2;FALSO);"")”. Na célula E13 digite “m³”. Selecione o grupo de células G13:H13 e mescle. Digite “=SEERRO(nU*PROCV(UnU;TC;2;FALSO);"")”. Na célula I13 digite “mol”. Selecione o grupo de células L13:M13 e mescle. Para a Temperatura a fórmula será um pouco diferente, pois temos dois fatores de conversão, mas não foge da lógica. O primeiro vai multiplicar pelo valor recebido do usuário e o segundo somaremos a essa multiplicação. Então a fórmula ficará assim “=SEERRO(TU*PROCV(UTU;TC;2;FALSO)+PROCV(UTU;TC;3;FALSO);"")”. Onde TU é o valor recebido pelo usuário, o primeiro PROCV é para encontrar o fator multiplicador e o segundo é o fator soma. Na célula N13 digite “K”. 31. Agora vamos verificar se tudo está certo, na célula B10 digite “1” e na célula C10 digite “atm”. Na célula B13 aparecerá, automaticamente, 101325, o resultado que esperávamos, logo a pressão está ok. Apague os valores de B10 e C10. Em seguida vamos montar o cálculo do resultado. 32. Primeiro vamos indicar na célula C16 qual o tipo de resultado o usuário quer. Ou seja, vamos dizer onde ele colocou o “?”. Selecione a célula C16 e digite “=SE(PU="?";B9;SE(VU="?";D9;SE(nU="?";G9;SE(TU="?";L9;""))))”. Isso significa que iremos analisar campo a campo vendo se o usuário colocou o “?” e retornar o nome do campo, por exemplo se ele colocar “?” embaixo do Volume a fórmula retornará Volume. O final da fórmula indica que se o usuário não digitar “?” esta célula ficará em branco. 33. Na célula F16 digite “=” e tecle ENTER;
  • 31. 31 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 34. Na célula G16 iremos efetuar o cálculo propriamente dito, no entanto temos que retornar para o usuário o resultado na unidade que ele deseja e não no S.I., então para deixar a fórmula menor, vamos fazer o cálculo no SI em outro campo e depois convertemos para a unidade desejada. 35. Antes de começarmos o cálculo vamos nomear mais algumas células para facilitar nossos cálculos. Defina B13 como “P”, defina D13 como “V”, defina G13 como “n”, defina J10 como “R_” e defina L13 como “T”. 36. Agora na célula P6 digite “Conversão para o SI”. Na célula P7 iremos fazer o cálculo no SI. Perceba que a fórmula do cálculo depende de onde está o “?”, portanto teremos que levar esse fator em consideração, logo será algo parecido com a última fórmula, usando uma cadeia de funções SE. Digite a seguinte fórmula: =SEERRO(SE(PU="?";n*R_*T/V;SE(VU="?";n*R_*T/P;SE(nU="?";P*V/R_/T;SE(TU="?";P* V/n/R_;""))));"")”. Essa fórmula avalia cada campo se há “?” e calcula a fórmula se for verdadeiro, e por fim, se não houver “?” deixa em branco. Caso haja algum erro, ela deixará em branco também. Para facilitar a visualização vamos indicar a unidade desse valor. Veja que esse cálculo intermediário será apenas de apoio. 37. Selecione a célula R7 e digite “=SEERRO(SE(PU="?";C13;SE(VU="?";E13;SE(nU="?";I13;SE(TU="?";N13;""))));"")”. 38. Agora temos o cálculo no SI com a unidade, se caso precisar saber o que é esse valor basta olhar a unidade. 39. Para mostrarmos o resultado do cálculo precisaremos converter novamente o resultado do SI para a unidade que o usuário deseja. Para isso basta encontrarmos o fator de conversão, usando PROCV, e dividir o resultado no SI pelo fator de conversão. Assim o resultado estará na unidade correta. 40. Vamos identificar a unidade que o usuário deseja, para sabermos pelo que procurar nas tabelas de conversões. Selecione a célula I16 e digite “=SE(PU="?";UPU;SE(VU="?";UVU;SE(nU="?";UnU;SE(TU="?";UTU;""))))” Por fim, vamos mostrar o resultado fazendo a conversão para a unidade desejada. Selecione a célula G16 e digite “=(P7-PROCV(I16;TC;3;FALSO))/PROCV(I16;TC;2;FALSO)” (não esqueça que a primeira e a última aspas não entram na fórmula). Veja que pegamos o valor calculado para o SI, subtraímos o termo fator soma quando for temperatura, e dividimos pelos fatores multiplicadores das conversões, usando a função PROCV para encontrar esses valores. Para conferir se está tudo certo faça um teste, coloque informações que você sabe o resultado e veja se a resposta está correta. Por exemplo, nós sabemos que 1 mol de gás à 1 atm e 0°C ocupa um volume de aproximadamente 22,4 L. Coloque as informações e deixe o volume com “?” e unidade em “L”. Veja se o resultado está correto. Figura 40 – Final da Etapa dois Etapa 2 concluída, o cálculo da equação de Clapeyron já está funcionando. 41. Vamos para a Etapa 3: Criar o menu de equações. Vamos inserir uma nova planilha e 42. renomear para “Menu”; Selecione a nova planilha Menu.
  • 32. 32 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 43. Clique na aba Inserir, e no grupo Texto clique em Caixa de Texto. Crie uma caixa de texto sobre o grupo de células C3:I5. Dentro da caixa escreva “Menu de Equações”. Nessa Etapa não vamos nos preocupar com a formatação, apenas criar a estrutura. Crie mais quatro Caixas de Texto cada uma sobre cada um dos grupos de células a seguir: B8:E10; G8:J10; B13:E15; G13:J15; E em cada caixa de texto digite: “CLAPEYRON”, “VAN DER WAALS”, “CLAPEYRON” e “PENG- ROBINSON”. Digitamos duas vezes Clapeyron apenas para fins didáticos, pois ensinaremos dois métodos para redirecionar o usuário para outro local. As outras duas equações ficarão de exercício para você fazer com o conhecimento que aprendeu. Figura 41 – Menu de Equações - Estrutura 44. O botão Clapeyron devenos levar até aplanilha Clapeyron. Para isso iremosfazer umamacro e usar um hiperlink. Ainda com a planilha Menu selecionada, clique em gravar uma macro. Dê o nome de Clapeyron, e na descrição digite “Seleciona a planilha Clapeyron”. Clique em OK, não esquece que tudo que fizer será gravado, então tome cuidado para não fazer nada que possa atrapalhar a macro que está gravando. Selecione a planilha Clapeyron, apenas. Pare a gravação. 45. Selecione a planilha Menu novamente. Agora vamos fazer os botões funcionarem. Clique com o botão direito na primeira caixa de texto do Clapeyron, depois clique em Atribuir Macro. Selecione Clapeyron e clique em OK. Clique em uma outra célula e passe o curso sobre a caixa de texto, veja que agora aparecerá uma mãozinha ao invés do curso de edição de texto. Clique e agora você está na planilha Clapeyron. 46. Agora vamos criar um botão na planilha Clapeyron para que o usuário possa voltar ao Menu. Ainda na planilha Clapeyron, clique na aba Inserir, depois em Formas do grupo Ilustrações e selecione uma seta larga para a direita listrada (depois de escolher esta seta, vá nas configurações da mesma e mude a direção para esquerda). Crie uma seta embaixo da temperatura, igual a figura abaixo. Clique na Seta criada e digite “VOLTAR”. Figura 42 – Seta voltar 47. Vamos criar uma macro para selecionar a planilha menu. Clique em gravar macro, dê o nome de “Menu”, na descrição digite “Seleciona a planilha menu” e clique em OK. Relembrando que tudo que fizer agora será gravado. 48. Selecione a planilha Menu e pare a gravação. Selecione a planilha Clapeyron novamente. 49. Clique com o botão direito sobre a seta VOLTAR e selecione atribuir macro. Selecione a macro Menu e clique em OK. Clique em qualquer outra célula e passe o cursor sobre a seta, clique. Você foi encaminhado para a planilha Menu. 50. Vamos fazer o hiperlink para o segundo botão agora. Clique com o botão direito sobre o segundo botão Clapeyron. Selecione Hiperlink. Na área Vincular a: selecione Colocar neste documento. Veja que na caixa
  • 33. 33 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 branca ao lado apareceram todas as planilhas desta pasta de trabalho, selecione a planilha Clapeyron e clique em OK. Figura 43 – Inserir Hiperlink Observação: A ordem em que estão dispostas as planilhas não tem importância. Faça o mesmo teste para este botão, clique em qualquer outra célula e clique no botão. Assim finalizamos a Terceira Etapa do nosso exercício, agora vamos para última etapa: Deixar a planilha com um visual agradável e esconder o que não é necessário ser mostrado. 51. Primeiro vamos trabalhar no design. Ainda com a planilha Clapeyron selecionada, selecione o grupo de célula B3:N5 e mescle. Vamos dar um título para a planilha e escrever as instruções para que qualquer pessoa possa usá-la. Nesta nova célula digite “Cálculos usando Equação de Clapeyron: coloque os dados para o cálculo, selecione as unidades e na variável que deseja calcular coloque “?” e selecione a unidade.” e na aba Início clique em Quebrar Texto Automaticamente no grupo Alinhamento, ainda neste grupo clique no Alinhamento ao Meio, para deixar o texto centralizado na vertical. No grupo Fonte, certifique-se de usar a fonte Calibri (títulos), altere o tamanho da letra para 16, clique em Negrito e altere a cor da letra para Branco e o fundo para Azul, Ênfase 1, Mais escuro 50%. 52. Selecione a célula P6, no grupo Fonte, clique em Negrito e altere a cor do fundo para Azul, Ênfase 1, Mais claro 80%. Selecione as células P6:S7, aplique bordas simples na cor Branco, Plano de Fundo 1, Mais escuro 25% e, no grupo Fonte, centralize o texto. 53. Vamos esconder as linhas que não precisam ser mostradas ao usuário, as dos cálculos intermediários. Selecione as linhas 12 e 13, clique com o botão direito e clique em ocultar. 54. Em seguida, vamos destacar as células que o usuário poderá alterar, as de valores e unidades das variáveis. Selecione os grupos de células B10:C10, D10:E10, G10:I10 e L10:N10 segurando Ctrl, e altere o tamanho da letra para 14, clique em Alinhar ao Meio e selecione Borda Normal Cor: Branco, Plano de fundo I, Mais escuro 25%. Selecione o grupo de célula J10:K10, altere o tamanho da letra para 14 e clique em Alinhar ao Meio. Na célula F10 digite “=”, altere o tamanho para 14 e alinhe ao meio, coloque nesse conjunto a mesma borda utilizada anteriormente. 55. Selecione o grupo de células C16:I16, altere o tamanho para 20, alinhe ao meio, clique em Negrito e selecione a mesma borda utilizada anteriormente. 56. Selecione a coluna P, segure Shift, tecle End e tecle Seta para a direita. Você selecionará todas as colunas depois da Coluna P, clique com o botão direito sobre qualquer coluna e selecione ocultar. Faça a mesma coisa para as linhas, selecione a linha 21, segure Shift, tecle End e tecle Seta para baixo. Em seguida selecione ocultar. Agora a planilha mostra apenas o necessário, assim ela se torna mais limpa e prática, muitas vezes as pessoas que criam as planilhas o fazem para uma terceira pessoa usar, e essa terceira pessoas muitas vezes não tem tanto conhecimento em Excel o que nos leva a uma alta probabilidade de ocorrer erros, seja na hora de lançar dados ou efetuar uma ação com as células. Para acabar com as chances de ocorrência de erros precisamos limitar o usuário a utilizar somente o que ele precisa, para isso servem os menus, as relações de encaminhamento do usuário até a planilha que ele deseja, e por fim o que iremos fazer agora, o bloqueio de estruturas que ele não irá usar e não deverá mexer, pois se por acaso ele resolver apagar uma fórmula que seja ele acabará com a funcionalidade da planilha, por mais que seja sem intenção. 57. Selecione o grupo de células B10:E10, G10:I10 e L10:N10, as células que o usuário poderá alterar, na aba Início, no grupo Células, clique em Formatar, abrirá uma lista, no grupo Proteção a opção Bloquear célula está marcada, desmarque-a. Por padrão, o Excel bloqueia todas as células da planilha, no caso de você precisar
  • 34. 34 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 proteger a planilha, e se você desejar que alguma célula possa sofrer alterações, você deverá desbloqueá-la antes de proteger sua planilha. Enfim vamos proteger nossa planilha, clique novamente em Formatar, e ainda no grupo Proteger há a opção Proteger Planilha, clique nela. Abrirá uma nova janela, no campo Senha para proteger a planilha: digite “senha” (sem as aspas), na parte Permitir que todos os usuários desta planilha possam: deixe selecionado apenas Selecionar células desbloqueadas. Clique em OK, abrirá outra janela para confirmar a senha, digite “senha” e clique em OK novamente. Tente clicar nas células da planilha. Você só conseguirá clicar nas células desbloqueadas, alterar o conteúdo das células de valores para qualquer valor e para as células de unidade apenas para unidades que estão cadastradas, e conseguirá também clicar no botão Voltar. Figura 44 – Planilha Clapeyron finalizada Clique no Botão Voltar, agora iremos trabalhar na planilha Menu.  Vamos mudar o estilo das caixas de texto, colocar um fundo na planilha e deixar somente as linhas e colunas necessárias, o resto nós iremos esconder. Selecione a caixa de texto de título (nas células C3:I5) altere o tamanho da letra para 32, clique em Negrito, escrita branca, texto centralizado e escolha um plano de fundo cor: Azul, Ênfase 1, Mais escuro 50%. 58. Vamos formatar as 4 caixas de texto do Menu. Selecione as quatro caixas segurando Ctrl, altere o tamanho das letras para 22,centralize (vertical e horizontal) e clique em Negrito (mantenha preto para as letras). Depoisclique em Formatar (Ferramentas de Desenho), em Estilos de Forma selecione Efeito Bisel – Malha. Altere a cor do fundo para Azul, Ênfase 1, Mais claro 60%. 59. Em seguida iremos preencher o fundo da planilha e esconder linhas e colunas. Selecione o grupo de células B2:J16 e coloque uma borda normal, cor Branco, Plano de fundo I, Mais escuro 25%. Após formatar as bordas do Menu, clique na coluna L, segure Shift e Ctrl e tecle seta para a direita. Isso selecionará todas as colunas a partir da coluna L, oculte-as. Selecione a linha 19, segure Shift e Ctrl e tecle seta para baixo e oculte as linhas. Pronto agora nossa planilha está pronta. Figura 45 – Planilha Menu finalizada 60. Agora vamos proteger nossa planilha. Clique na aba Início e clique em formatar. Como esta planilha não há nenhuma célula que precise ser desbloqueada nós vamos proteger a planilha apenas. Clique em Proteger Planilha, deixe marcado apenas a opção Selecionar células desbloqueadas, na senha coloque “senha” (sem as aspas), clique em OK, digite novamente “senha” e OK. Pronto nossas planilhas já estão protegidas, faça alguns testes para ver se está tudo funcionando corretamente. Os botões Van Der Waals e Peng-Robinson são meramente ilustrativos, mas fica de exercício para você tentar fazer as planilhas de cálculo para eles.
  • 35. 35 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 61. Para finalizar vamos deixar a planilha ainda mais limpa: Vamos esconder os títulos das linhas e das colunas, as abas das planilhas e as barras de rolagem. Antes, selecione a planilha Menu. Para o Excel 2007 Botão Office > Opções do Excel > Avançado Role até encontrar o grupo Exibir opções para esta pasta de trabalho: e desmarque as opções: Mostrarbarra de rolagem horizontal, Mostrar barra de rolagem vertical e Mostrar guias de planilha. Logo abaixo há: Exibir opção para estaplanilha: , ao lado aparecerá a planilha que está selecionada. Primeiro selecione a planilha Menu. Desmarque a opção Mostrar cabeçalhos de linha e coluna e Mostrar linhas de grade. Agora selecione a planilha Clapeyron e faça o mesmo. Por fim clique em OK. Pronto, nossa planilha com Menu está pronta, agora você pode aplicar esses conhecimentos para qualquer tipo de menu que precise criar, a questão é por que criar planilhas com Menu? Nem sempre o usuário da planilha será quem criou a planilha e ainda pode ser que esse usuário não tenha tamanho conhecimento de planilhas, pelo menu fica fácil, prático e simples para ele navegar pelas abas sem se perder e o mais importante sem modificar alguma parte da planilha que não poderia ser modificada, portanto existem muitas aplicações, basta você ser criativo!
  • 36. 36 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Nesta parte do curso, entraremos na parte que envolve programação no Excel utilizando o VBA (Visual Basic for Applications). A grande vantagem que esse recurso nos traz em relação ao gravador de macros, o qual utilizamos até agora, é a flexibilidade e maior complexidade dos mecanismos que podemos criar no Excel. Além disso, as macros que gravamos até agora são, em si, código de VBA que o Excel escreve automaticamente para nós conforme as ações que realizamos na planilha. Contudo, o gravador não nos permite usar o máximo potencial do Excel, pois sua funcionalidade ainda é limitada e é por isso que conhecer como o código funciona e poder escrever o seu próprio código é tão interessante. Para criar mecanismos no Excel, primeiro devemos conhecer o nosso novo local de trabalho, pois não é na planilha em que escrevemos códigos, mas sim no Editor do Visual Basic. Para acessar esse local, vá até o friso Desenvolvedor e, no menu Código, clique em Visual Basic. Alternativamente, use o atalho Alt+F11 e seja bem-vindo ao Editor! Figura 46 – Acesso ao editor do Visual Basic Nesta nova janela, vemos, à esquerda, dois locais: Projeto – VBAProject e Propriedades. No primeiro, estão os elementos que fazem parte do projeto. Já no segundo, encontram-se propriedades dos objetos que podemos vir a utilizar quando escrevemos um código, mas essa janela será vista de forma mais aprofundada futuramente. Se, porventura, alguma das duas janelas não estiver ali, é possível visualizá-las clicando, no menu, em Exibir e, em seguida, clicando em Project Explorer (atalho Ctrl+R) e/ou em Janela ‘Propriedades’ (atalho F4). Figura 47 – Interface do VBA Importante: “Projeto” deve ser entendido como o grupo de macros e de planilhas de Excel utilizados para uma determinada funcionalidade.
  • 37. 37 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 O primeiro passo que devemos executar para criar macros e funções é inserir um Módulo onde podemos codificar. Para isso, vá ao menu e clique em Inserir e depois em Módulo. Note que na janela Projeto – VBAProject surge um novo diretório, chamado Módulo1. Se você abrir outro, este será o Módulo2 e assim por diante. Perceba também que foi aberta uma janela em branco no centro da tela denominada Pasta 1 – MóduloX (Código), em que X é o número do módulo aplicado e a denominação Pasta1 pode ser substituída pelo nome da planilha que está sendo utilizada. Essa janela é a interface para a inserção dos comandos, na qual inscrevemos nossos códigos. Figura 48 – Inserção de um Módulo Figura 49 – Módulo no VBA 3.2. INTRODUÇÃO À FUNÇÕES NO VBA A programação em VBA nos traz inúmeras possibilidades, não somente a criação de macros, como a criação de funções. Já imaginou se algum trabalho ou projeto que você esteja desenvolvendo no Excel necessite do uso de uma fórmula complexa, que não está no banco de fórmulas, e você precisasse usá-la diversas vezes? Isso o deixa mais suscetível a cometer erros, além de tornar o trabalho mais tedioso do que ele precisa ser. A realidade é que você é capaz de criar uma função para tornar essa situação mais prática. Assim como existem as diversas funções, como SEN(), COS(), SOMA(), entre outras, para as quais tudo o que você precisa fazer é indicar os parâmetros da função e o Excel retornará o valor que você deseja, você pode criar no VBA uma função definida pelo usuário que fará o mesmo para a expressão que você quiser. Vejamos, então, a estrutura mais básica de uma função: Function NomeDaFunção (Parâmetro1 As Tipo, Parâmetro2 As Tipo, ...) As Tipo Corpo da função End Function
  • 38. 38 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Onde NomeDaFunção é o nome que você quer dar a sua função, Parâmetro1, 2,... são os parâmetros requeridos pela sua função e As Tipo se refere a característica de um parâmetro (dentro do parênteses) ou do valor retornado pela função (fora do parênteses). Na hora de escrever a função é importante lembrar que o As deve ser mantido e o tipo deve ser um dos disponíveis na primeira coluna da tabela abaixo: TIPO DE DADO VALORES DESCRIÇÃO Boolean True ou False Aceita os valores lógicos verdadeiro ou falso. Reserva 2 bytes de memória. Byte 0 a 255 Armazena valores inteiros, reservando 1 byte de memória. Currency [-922.333.203.477,5808 até 922.333.203.477,5808] Armazena valores monetários e decimais fixos, reserva 8 bytes. Date 1/1/1900 a 31/12/9999 Utilizada para armazenar datas e horas. 8 bytes de memória. Double [-1,79769313486232E308 até -4,94065645841247E-324] e positivos [1,79769313486232E308 até 4,94065645841247E- 324] Armazena ponto flutuante de dupla precisão, reservando 8 bytes. Integer Valores inteiros entre -32.768 até 32.767 Reserva 2 bytes Single Valores de -3,402823E38 até -1,401298E-45 e positivos de 1,401298E-45 até 3,402823E38 4 bytes de memória. Armazena valores de ponto flutuante de simples precisão String Textos de 1 até 65.400 caracteres 1 byte de memória por caractere em cada string Long Valores inteiros grandes entre -2.147.483.648 até 2.147.483.647 Reserva 4 bytes Variant Pode armazenar qualquer tipo de dado 16 bytes de memória + 1 byte por caractere e aceita qualquer tipo de dado Tabela 3 – Tipos de variáveis Caso você não especifique o tipo de suas variáveis e/ou funções, elas serão automaticamente tratadas como sendo do tipo Variant, que é o que mais ocupa espaço na memória. Por isso, quando possível, é interessante atribuir tipos para variáveis de acordo com seu papel no código.
  • 39. 39 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 A seguir, veremos aspectos importantes da linguagem do VBA, aproveitando para ver alguns exemplos de funções. A declaração de variáveis é o momento em que você deixa indicado no código as variáveis adicionais, ou seja, que não sejam os parâmetros da função, mas que também serão utilizadas. Fazer isso é opcional, porém, novamente, se você utilizar uma variável sem declará-la antes, ela será considerada do tipo Variant. Existem 4 formas de declarar uma variável, são elas: 1. Dim Variável As Tipo 2. Static Variável As Tipo 3. Private Variável as Tipo 4. Public Variável As Tipo O comando Dim é uma abreviação de Dimension e é usado para declarar variáveis que terão seus valores retidos apenas enquanto o procedimento em que se encontram estiver sendo usado. Já o valor de uma variável declarada com Static é válido apenas dentro do procedimento onde se encontra, mas ele será preservado entre as execuções deste. Private serve para variáveis válidas em todo o Módulo e Public para variáveis que podem ser chamadas por qualquer procedimento que esteja na pasta de trabalho. 3.4. EXPRESSÕES ARITIMÉTICAS, LÓGICAS E COMPARATIVAS No corpo de uma função, será necessário relacionar variáveis e/ou números e essas relações são representadas pelas expressões aritméticas, lógicas e comparativas: EXPRESSÕES OPERADORES Aritméticas + (adição) - (subtração) * (multiplicação) / (divisão) ^ (exponenciação) Lógicas not (não) and (e) or (ou) equiv (equivalente) Xor (exclusão entre expressões) Comparativas > (maior) < (menor) >= (maior ou igual) <= (menor ou igual) <> (diferente) Tabela 4 – Expressões Aritméticas, Lógicas e Comparativas As expressões aritméticas são as operações que conhecemos (os elementares e a exponenciação). Já as lógicas são operações em que introduzimos um ou mais símbolos e, conforme o operador desejado, recebemos um símbolo de resposta. O exemplo mais clássico de símbolo de resposta é o Verdadeiro e Falso. Através dos operadores lógicos podemos analisar valores, numéricos ou não, conforme desejamos. O Not, o And, o Or e o Xor são os mais importantes. O primeiro inverte o resultado de uma expressão que possa retornar “Verdadeiro” ou “Falso”, o segundo retorna valor “Verdadeiro” caso, de duas expressões, ambas sejam verdadeiras e o terceiro, o Or, retorna
  • 40. 40 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 valor Verdadeiro se, de duas expressões, pelo menos uma for verdadeira. Já o último, o Xor, retorna “Verdadeiro” quando uma e apenas uma de duas expressões seja verdadeira. As estruturas comparativas seguem um raciocínio parecido com a das lógicas, devolvendo um símbolo de resposta a cada operação. Porém estruturas comparativas só podem ser usadas para analisar valores numéricos. Estruturas de controle são o que determinarão o que acontecerá a cada vez que você executar um procedimento. Caso você não as utilize, o programa lerá o código sempre da mesma maneira, de cima para baixo e da esquerda para a direita. Contudo, isso por si só não é suficiente para suprir várias das necessidades que temos em determinadas situações, como no seguinte exemplo. 3.5.1. Else...If Suponha que você deve criar uma função chamada MaiorQue10() que receba como parâmetro um número Número e diga se ele é maior que 10. Há duas situações possíveis nesse problema – ou o número é maior que 10 ou ele não é- logo, o caso deve ser avaliado e conforme o resultado disso, o programa deve executar uma ação e deixar de realizar a outra. Então, como resolver esse problema? É o que veremos a seguir, com a primeira estrutura de controle que será apresentada. O problema apresentado anteriormente requer a escolha de um rumo a ser tomado no código do programa de acordo com a situação e, nesse caso, a estrutura If será responsável por isso. Veja a seguir a sua sintaxe: If condição Then Comandos do If Else Comandos do Else End If As partes obrigatórias da estrutura foram deixadas sem colchetes. Aqui, condição é uma relação cuja veracidade será verificada quando a função for executada. Caso ela seja verdadeira, o programa executará os Comandos imediatamente abaixo; caso ela seja falsa, o programa não executa os comandos subordinados ao If, ao invés disso, ele sai da estrutura sem realizar nada, a não ser que exista uma estrutura Else. Esta permite que você determine ações que deverão ser tomadas caso a condição seja falsa. Se essa condição for verdadeira, o Else é ignorado. Por fim, End If é uma parte obrigatória e indica o fim da estrutura. Assim, uma possível resolução para o problema inicial é a seguinte: Function MaiorQue10(Número As Single) As String If Número > 10 Then MaiorQue10 = "Sim" 'Se o número for maior que 10, a função retorna Sim' Else MaiorQue10 = "Não" 'Caso seja menor ou igual a 10, a função retorna Não' End If End Function Observação: No VBA, o apóstrofo pode ser usado para deixar comentários.
  • 41. 41 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Quando o usuário escrever em uma célula “=MaiorQue10(10)” ou inserir a função utilizando 10 como parâmetro, por exemplo, o programa verificará que 10 não é maior que 10, assim executará o comando de Else ao invés do de If, retornando “Não”. Experimente, agora, voltar à planilha e comece a digitar “=MaiorQue10” em uma célula. Você perceberá que sua função será sugerida assim como as demais funções existentes no Excel. Também é possível utilizar a opção de Inserir Função, no friso Fórmulas, para usar sua função. Para achá-la mais facilmente, você pode escolher a categoria Definido pelo Usuário para visualizar funções criadas por você, ou seja, não nativas do Excel. Veja, agora, outras estruturas úteis. 3.5.2. Select Case Crie uma função Tarifa() que receba um valor Renda e indique qual a taxa que deve ser paga pelo usuário. Considere que: • Rendas de até R$ 2.500,00 apresentam taxa 0; • Rendas entre R$ 2.500,00 até R$ 5.000,00 sejam taxadas em 5% do valor acima de R$ 2.500,00; • Rendas acima de R$ 5.000,00 sejam taxadas em 10% no valor acima de R$ 5.000,00 e 5% no valor acima de R$ 2.500,00. Esse problema poderia facilmente ser resolvido usando If, porém veremos uma alternativa cujo benefício é a legibilidade do código, o Select Case. Sua sintaxe é a seguinte: Select Case Variável/Parâmetro Case expressões1 Comandos do Case1 Case expressões2 Comandos do Case2 ... Case expressões-n Comandos do Case’n’ Case Else Comandos do Else End Select Para o Select Case, que, assim como o If, é uma estrutura condicional ou de ramificação, você escolhe uma variável, que pode ser um dos parâmetros da função ou não, que será usada como base para gerar uma série de condições e comandos. Caso alguma das expressões seja verdadeira para a variável selecionada, o programa seguirá o comando subordinado ao respectivo Case, caso contrário, se existir, ele obedecerá ao Case Else, saindo, em seguida, do Select Case. A resolução do exercício é: Function Tarifa(Renda As Single) As Single Select Case Renda Case Is <= 2500 Tarifa = 0 'Se o valor é menor ou igual a 2500, a tarifa será zero.' Case Is <= 5000 Tarifa = (Renda - 2500) * 0.05
  • 42. 42 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 'Se o valor é maior que 2500, mas menor que 5000, o valor que excede 2500 é taxado em 5%' Case Else 'Abrange qualquer intervalo não especificado, no caso, rendamaior que 5000. Vale ressaltar que poderia ser criado um Case Is > 5000' Tarifa = (Renda - 5000) * 0.1 + (Renda - 2500) * 0.05 'Se o valor é maior que 5000, o valor que excede 5000 é taxado em 10% e o valor que excede 2500 é taxado em 5%' End Select End Function Agora você já pode testar a função na planilha! 3.6. ESTRUTURA DO... LOOP Veremos agora algumas estruturas de repetição ou de laços. Resolva o seguinte problema: Criar uma função SomaPA() para obter a soma e uma função ProdutoPA() para obter o produto dos termos de uma progressão aritmética que começa em a1, com n termos e razão r, sendo esses três valores parâmetros da função. Este é um exemplo de um caso que não é resolvido com algo que vimos até agora, mas que certamente é possível. Veja as possíveis formas e o funcionamento de uma estrutura Do... Loop: Do While Condição Comandos Loop Onde Do While e Loop podem ser substituídos por: 5. Do Until (Condição), (Comandos) e Loop 6. Do, (Comandos) e Loop While (Condição) 7. Do, (Comandos) e Loop Until (Condição) 8. While (Condição), (Comandos) e Whend O que isso significa? Bom, existem 5 maneiras possíveis de usar Do...Loop (While, Until e Wend), como é possível ver acima, mas o funcionamento de todas é bastante similar. Todas elas seguem o princípio de avaliar uma expressão e, dependendo se ela for verdadeira ou falsa, o programa repetirá a execução da estrutura ou irá encerrá-la, seguindo em frente. Nos dois primeiros casos (condição no Do), a condição é avaliada no início da estrutura, antes de executar os comandos, sendo que o While executa os comandos enquanto a condição for verdadeira e o Until executa até que a condição se torne verdadeira, ou seja, enquanto ela for falsa. Para as duas outras situações, a análise da condição ocorre no final da execução, ou seja, os comandos são executados antes e, no mínimo, uma vez. Novamente, o While executa os comandos enquanto a condição for verdadeira e o Until executa até que a condição se torne verdadeira. Veja o exemplo com Do While... Loop: Function SomaPA(a1 As Integer, R As Integer, n As Integer) Dim c As Integer c = 1 Do While c <= n 'Quando c é maior que o número de termos, a operação é encerrada' SomaPA = SomaPA + a1
  • 43. 43 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 'Como não foi especificado um valor para SomaPA, é assumido o valor de O. Assim, na primeira iteração, é somado 0 ao valor inicial de a1.' a1 = a1 + R 'A cada iteração o valor de a1 é incrementado, passando a a2, a3 e assim por diante, por mais que o nome da variável seja mantido o mesmo.' c = c + 1 'Por fim, é incrementado o contador.' Loop End Function A função tratada, SumPA, se trata da soma dos termos de uma PA. Consiste em uma função cujos parâmetros iniciais são o primeiro termo da PA (a1), a razão na qual aumenta essa PA (r) e o número de termos que devem ser somados a partir do primeiro. Também é declarada uma variável c que seria nosso contador. Tal variável nos ajudará a ter um controle do número de interações rodadas pelo Do...While. Depois da declaração do contador, ocorre o primeiro teste da condição c <= n. Caso tal condição seja verdadeira, é executado SumPA = SumPA + a1, onde a1 = a1 + r e, por fim, c = c + 1. Agora temos que o atual valor de c é diferente de seu valor inicialmente atribuído, então o Loop faz com que retornemos para a condição do Do...While e ela é testada novamente. Como é possível ver na tabela abaixo, definindo a1 = 1 e r = 2, podemos obter diversos valores de SumPA para diversos valores de n selecionados pelo usuário. Lembrando: a função retorna como resultado a variável homônima, ou seja, SumPA e nenhuma das células relacionadas ao cálculo desse resultado tem seu valor alterado. Interação (n) 0 1 2 3 4 5 c 1 2 3 4 5 6 a1 1 1 3 5 7 9 SumPA 0 1 4 9 16 25 Tabela 5 – Resultados de SumPA para diferentes valores de n Uma coisa importante de ser salientada é que, como não foi atribuído nenhum valor inicial para SumPA, seu valor inicial é dado como 0. Isso é perceptível na tabela acima, uma vez que para n = 0 temos que a condição do Do...While é falsa na primeira checagem e o valor retornado é SumPA = 0. 3.7. ESTRUTURA DO FOR... NEXT Dessa vez resolveremos o mesmo problema, mas o faremos de outra forma, utilizando outra estrutura de repetição, o For...Next: For variável = valor inicial To valor final [Step valor] Comandos Next variável A lógica neste caso é a seguinte: variável é uma variável (parâmetro ou não da função) que você deve escolher, assim como um valor inicial valori e um valor final valorf para ela. Quando o programa for executado, se o valor associado ao Step for positivo, ele verificará se valori > valorf e se o Step for negativo, a avaliação será se valori < valorf. Para ambas as situações, caso a análise retorne falso, ele prosseguirá para os comandos e para o Next. O que acontece agora é que o valor da variável será incrementado/decrementado com o valor do passo (caso o passo não seja escrito, ele será, automaticamente, considerado 1) retornando, em seguida, à leitura do código ao For, repetindo esse processo até que valori > valorf ou, se for o caso, valori < valorf seja verdadeiro, momento em que a estrutura será encerrada. Repare que, nesse caso, não informamos o número de termos e, sim, um intervalo de a1 até an. Veja o exemplo para o problema em questão:
  • 44. 44 Apostila do Minicurso de VBA PET – Engenharia Química – UFPR – 2020/01 Function ProdutoPA(a1 As Integer, R As Integer, n As Integer) Dim c As Integer ProdutoPA = 1 'É necessário estabelecer o valor inicial da função como 1, por tratar-se de uma multiplicação de termos. Se isso não fosse realizado, o resultado seria sempre 0.' For c = 1 To n ProdutoPA = ProdutoPA * a1 a1 = a1 + R Next c End Function A análise dessa função nos dá o seguinte: é usada uma variável c que age como variável de controle, ou seja, seu valor dita as ações na estrutura. Então, se estabelece, no For, que o valor inicial de c é igual a 1 pois o contador de termos em uma progressão aritmética começa com n = 1. E o valor final é o parâmetro n. Nesse caso o passo da ferramenta For é 1, podendo ser omitido na declaração. A análise feita é aquela apresentada anteriormente e, caso o resultado seja falso, é executado a estrutura dentro do For e, depois, o Next retorna a leitura do programa ao For, repetindo o ciclo até que a avaliação retorne o valor verdadeiro. Importante: Não foi considerado a existência de restrições nos exemplos, porém existe um cuidado que se deve tomar ao usar estruturas de repetição: é evitar a todo o custo a criação de ciclos infinitos. Um ciclo infinito significa criar uma estrutura que nunca chega a sua condição de término, o que pode gerar erros catastróficos no Excel, podendo até forçá-lo a reiniciar o programa. Por isso, essas estruturas devem ser bem pensadas antes de serem usadas! Ainda, existe o comando chamado Exit, que pode ser usado com diversas estruturas, como Select, Do, For, oumesmo Function, para fazer com que o programa saia de uma estrutura caso este código for lido, o que pode ajudar a evitar os laços infinitos. Essas são algumas das estruturas básicas do VBA. Não são as únicas, mas com elas já é possível fazer muita coisa, basta um pouco de criatividade e raciocínio lógico! 3.8. EXERCÍCIOS Exercício 3.1. Este exercício se refere a Termodinâmica AplicadaI. Após sair de um reator, uma determinada vazão de Amônia (NH3) passa por um trocador de calor. Sabendo que a temperatura de saída é 373,15 K, e que a pressão de operação é 30 atm, calcule a vazão volumétrica que sairá do reator utilizando a equação de estado de Van Der Waals. A vazão mássica de NH3 é de 2000 Kg/h. Dados: Vazão mássica (kg/h) Tc (K) T (K) Pc (atm) P (atm) R (m³ atm/kmol K) Erro M (kg/kmol) 2000 405,6 373,15 111,3 30 0,082 0,00001 17,03 Tabela 6 – Dados do Exercício de Termodinâmica Aplicada I Para resolver esse exercício, necessitamos saber qual a equação de estado de Van der Waals que é descrita como: 𝑃 = 𝑅 × 𝑇 (𝑉 − 𝑏) − ( 𝑎 𝑉2 ) Sendo que os fatores 𝑎 e 𝑏 são dados por: 𝑎 = 27 67 × (𝑅 × 𝑇𝑐)2 𝑃𝑐 𝑏 = 𝑅 × 𝑇𝑐 8𝑃𝑐