Você está na página 1de 45

Apostila sobre

Microsoft Excel
Avanado e Programado em VBA

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

CONSIDERAES INICIAIS Seja bem vindo Muito obrigado pela sua confiana em nosso trabalho. Nosso mtodo de ensino ser guiado por ensinar a aprender. O Excel um aplicativo composto por uma grande variedade de comandos, porm este software possui uma padronizao que facilita o seu aprendizado. Voc observar vrios comandos no Excel de grande utilidade no cotidiano e em seguida potencializar a eficincia e rapidez utilizando a programao em VBA. Muito se diz sobre a didtica de um professor e pouco sobre a didtica do aluno. Nossa preocupao em ensinar a aprender tem que ser sucedida pela sua preocupao em aprender a aprender. necessrio que voc saiba qual a sua melhor forma de aprender. Observe se o seu aprendizado adquirido atravs da repetio dos exerccios, da concentrao na explicao e/ou atravs das anotaes. A juno da didtica do aluno didtica do professor a menor distncia at o conhecimento. Tendo dvidas, timo!!! A dvida o primeiro ponto do aprendizado. Pergunte e insista at obter resposta. Sanar a dvida o ponto final do conhecimento almejado. Boa sorte! Material Didtico Esta apostila est vinculada aos arquivos presentes no disquete de acompanhamento. Com este sistema se consegue a otimizao do aprendizado evitando o gasto de tempo com a digitao de planilhas-exemplos. Portanto, indispensvel tanto a apostila quanto o disquete. Os exerccios foram elaborados na pretenso de simular o diaa-dia daqueles que necessitam de uma melhor performance para suas planilhas. No disquete voc deve encontrar os seguintes arquivos: Comandos Avanados.xls, PedGeral.dbf, Planilha Geral.xls, Relms.xls, Trabalhando com datas.xls, Arquivo X. Confira se seu disquete est completo. O Excel verso 2000 o software utilizado neste material. Ser comentado em sala as diferenas entre verses as 97 e XP. Excel, Excel Avanado, Excel Programado O Excel um programa com muitos recursos para manipulao de tabelas essencialmente numricas. Este programa desenvolvido pela empresa Microsoft atualmente o editor de planilhas de maior utilizao pelo mercado-de-trabalho. Este mesmo mercado tem exigido de seus colaboradores um maior conhecimento deste software na perspectiva de maior eficincia e agilidade na editorao de planilhas em geral. Devido numerosidade de comandos e complexidade de funes o aprendizado do Excel foi dividido em partes distintas: Excel - Excel Avanado - Programao VBA. Os comandos bsicos do Excel so ensinados para os iniciantes do Excel, e os recursos mais avanados como funes (lgicas, financeiras, estatsticas...), tabelas dinmicas, filtros, subtotais, auditoria e outros recursos mais, so ensinados aos interessados no
Prof. Eduardo dvila Albuquerque Pgina 2/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

aprofundamento em Excel. Existe ainda neste editor de planilhas uma Linguagem1 de Programao embutida e apropriada aos programas. O nome desta linguagem Visual Basic for Applications (VBA). Esta forma2 de programao especialmente desenvolvida para que os usurios dos softwares comuns3 possam criar novos comandos, dentro do prprio programa, facilitando assim a criao dos arquivos em geral. Podemos dizer que para se aprender Excel em sua totalidade, devemos fazer dois cursos, no que seja dois programas, e sim, um programa que divido4 em duas etapas de ensino, O Excel Iniciante e o Excel Avanado/Programado. Existe uma Linguagem de Programao, tambm criada pela empresa Microsoft, chamada de Visual Basic (VB), onde podemos criar os mais diversos tipos de programas. O VB em sua totalidade uma linguagem de programao. O VBA no essencialmente uma linguagem de programao. uma maneira de interferir nos programas. Alguns ousam dizer que o VBA um VB pequenininho. bom saber que todo o aprendizado de VBA, alm de potencializar os programas do Office, serve como base para aprendizado do VB, afinal as linhas de instruo e os comandos so semelhantes. No podemos dizer que um programador em VB tenha a obrigao conhecer VBA, mas caso tenha que conhecer, observar uma enorme facilidade. Uma vantagem do VBA o fato desta forma de programao servir tanto para o Excel como para os outros softwares comuns, sendo assim quem aprende VBA no Excel, com pequenas adaptaes, aprende o VBA para qualquer aplicativo. Concluindo, a melhor definio para o VBA o seu prprio nome: Visual Basic Applications (Visual Basic para aplicativos), uma forma de programao para programas de aplicao. Aprenderemos com esta apostila a dominar o Microsoft Excel, avanado e programado, doravante chamado apenas de EXCEL.

Linguagem de Programao uma biblioteca de termos e expresses que utilizamos para criar um programa. caracterstica essencial de um programa funcionar dependendo unicamente do Sistema Operacional.
2

O VBA chamado de forma de programao por no possuir todos os requisitos de uma linguagem. No quesito funcionalidade, todos os sistemas em VBA dependem primeiramente do programa tronco (neste caso o Excel) e conseqentemente do Sistema Operacional.
3

Softwares comuns so todos os programas populares produzidos em alta escala pelas empresas de desenvolvimento de sistemas. Exemplo de empresas: Microsoft, Corel. Exemplo de softwares comuns: Word, Excel, Access, Corel Draw.
4

Esta uma diviso meramente didtica. Prof. Eduardo dvila Albuquerque Pgina 3/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Primeira Parte CAPTULO 1 - COMANDOS AVANADOS Para a melhor explicao dos comandos avanados5 do Excel, utilizaremos alguns arquivos salvos em seu disquete. Para melhor desempenho aconselhvel copiar este disquete para uma pasta. Clique ento em Arquivo, Abrir e localize o arquivo Comandos Avanados. Observe que todas as planilhas contidas nesta pasta de trabalho so semelhantes, a diferena observada exatamente a utilizao de comandos que sero explicados a seguir. No Excel, dizemos que o arquivo gravado uma pasta de trabalho que contm a(s) planilha(s). Formatao No que tange a formatao de uma planilha, consideramos os comandos bsicos como negrito, itlico, tamanho de fonte e outros como entendidos, porm possuem algumas formataes que facilitam e agilizam nosso trabalho. Lembre-se que os comandos de formatao, em sua maioria, necessitam que uma determinada rea da planilha seja selecionada. Na linha 3, os ttulos foram centralizados ocupando o correspondente ao seu espao, enquanto na linha 1 o ttulo geral pode ser mesclado e centralizado ocupando toda a largura da planilha. O comando mesclar e centralizar foi utilizado nos subttulos da linha 2. Na coluna A, Cdigo, foi usado o comando clulas do menu formatar onde os nmeros foram personalizados6 para 0000. Isto significa que o nmero de dgitos do cdigo ser no mnimo 4, mesmo que sejam zeros(0) esquerda. Na coluna C, foi utilizada a formatao condicional, do menu formatar, onde podemos escolher qual formatao ser utilizada de acordo com a condio feita. Veja a imagem abaixo:

Na coluna D, foi usado o estilo moeda e nas colunas referentes porcentagem o estilo porcentagem. Na quantidade apenas o comando centralizar.
5

No existe comando avanado oficialmente no Excel, ns qualificamos assim baseado em sua complexidade e grau de utilizao. 6 Usando a Ajuda do Excel procure por formatao de nmeros e observe a utilizao do #. Prof. Eduardo dvila Albuquerque Pgina 4/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Para facilitar a visualizao dos dados na janela do Excel, foi usado o comando congelar painis, menu janela, Este comando deixa sempre visvel em sua janela todos os dados que estejam localizados acima e a esquerda da clula ativa no instante da utilizao deste comando. Observe sua utilidade na planilha. As cores de preenchimento e bordas imprimveis nas clulas so uma forma de melhorar a aparncia de sua planilha. Caso tenha colocado um destes comandos em clulas indevidas pode-se utilizar o comando limpar, no menu editar. possvel escolher o que deseja remover das clulas: tudo, formatos, comentrios... Frmulas simples As frmulas utilizadas nesta planilha podem ser visualizadas na planilha frmulas e funes, da mesma pasta de trabalho, sendo que a primeira frmula de cada coluna est visvel, enquanto as outras esto mostrando apenas o resultado da frmula. As frmulas em geral so adaptveis a linhas e colunas, pois sofrem alteraes ao serem usadas nos campos posteriores , sem perder sua caracterstica inicial. Constri-se uma frmula e, utilizando o recurso de autopreenchimento7, copiamos para as linhas seguintes, sendo que os endereos da frmula so modificados pelo Excel. O valor do imposto foi calculado multiplicando o valor da compra pela porcentagem imposto . De maneira semelhante, encontra-se o valor do frete, e despesas administrativas. Nesta mesma planilha encontraremos outros exemplos de frmulas simples. = VALOR DA COMPRA X PORCENTAGEM Funes Funo SE Vamos imaginar que as peas masculinas so compradas de um fornecedor e as peas femininas de outro fornecedor, e que estes fornecedores esto em distncias diferentes em relao ao local de entrega do produto, no caso sua loja. necessrio que as taxas de frete sejam diferentes: masculina 3%, feminina 4%. Neste caso queremos que o prprio Excel regule a porcentagem que ser adotada. Utilizamos o recurso de funo no seu Excel. Clique no comando funes, menu inserir. Funo SE

O auto preenchimento pode ser realizado posicionando a clula mvel sobre o resultado de uma frmula e , logo em seguida, arrastando o sinal de adio localizado no canto direito-inferior da clula ativa para a direo desejada. Podemos tambm dar um clique duplo neste sinal de adio para autopreencher as linhas inferiores. Prof. Eduardo dvila Albuquerque Pgina 5/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Observe que do lado esquerdo podemos escolher o tipo de funo que queremos e do lado direito funo propriamente dita. Observe ainda que na parte inferior exibida uma sintaxe do funcionamento da funo. importantssimo observar esta sintaxe. A BASE DE TODO APRENDIZADO A OBSERVAO. Abaixo uma melhor explicao desta sintaxe:

SE, o nome da funo, seguido do abre parntese. TESTE_LGICO: o que desejamos que seja analisado pelo Excel. Por exemplo: 4=B3, ou B5<H9, ou B3=domingo, ou H8 >=50. Quando a comparao relacionada a um texto, este deve ser colocado entre aspas. O teste lgico pode ser dado a um nmero, a um endereo8 ou a um texto. Ao fazer esta anlise o Excel verifica se a expresso no campo teste_lgico verdadeira ou falsa. Valor_se_verdadeiro: Significa o que o Excel deve fazer caso a expresso contida no teste lgico seja verdadeira. Pode ser um nmero, um texto, um endereo e at mesmo uma frmula ou funo. Valor_se_falso: Significa o que o Excel deve fazer caso a expresso contida no teste lgico seja falsa. Pode ser um nmero, um texto, um endereo e at mesmo uma frmula ou funo. No caso desta planilha, veja como ficou a funo:

Endereo no Excel a unio da Coluna com a Linha, sendo assim, o endereo da coluna h e da linha 10 H10. O endereo, normalmente, composto primeiramente pela coluna (representado por uma letra), seguido pela linha (representado pelo nmero), este formato chamado de formato A1, porm pode-se fazer modificaes neste formato do endereo. Prof. Eduardo dvila Albuquerque Pgina 6/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Ao utilizar funes usufrumos comandos pr-prontos inclusos no Excel, os quais realizam uma determinada tarefa, Resta ao usurio apenas fornecer as informaes necessrias para a execuo da funo. As funes realizam a tarefa para qual foi pr-determinada utilizando as informaes fornecidas pelos usurios. Elas retornam resultados alcanados na realizao desta tarefa. O comando funes, no menu inserir um assistente de funo. Auxilia na edio e na descoberta de novas funes. Existe o mtodo escrito para as funes. Este mtodo exige habilidade e maior ateno do usurio, mas proporciona agilidade. Observe a funo SE depois de pronta. =SE(C4="M";3%;4%) Tudo isto pode ser digitado diretamente na clula que deseja obter a resposta. O usurio deve se atentar para os seguintes detalhes: O sinal de igualdade no incio da funo. O nome da funo. A colocao dos parnteses e ponto-e-vrgulas. Como esta funo tem a necessidade de informaes fornecidas pelo usurio (argumentos, neste caso 3 argumentos), deve se atentar para o correta informao destes, sabendo que de argumento para argumento a separao e feita atravs de ponto-e-vrgula. Existem argumentos obrigatrios e opcionais, no decorrer dos estudos isto ser identificado. A funo SE importante e muito utilizada nas planilhas com teor de complexidade. Neste exemplo, a mesma funo foi utilizada para os clculos de porcentagem das despesas administrativas. Para visualizar as funes nesta planilha, basta selecionar a clula que contm o resultado da funo. Ser exibida na barra de frmulas a funo em sua maneira escrita. Observe a funo para porcentagem de lucro: = SE ( L4 < 10 ; 30% ; SE ( L4 < 20 ; 20% ; 10%) ) Se Equilbrio menor que 10 ento adote 30% de lucro, seno analise se equilbrio menor que 20, se for adote 20% de lucro, seno o adote 10%. As duas funes acima podem ser analisadas utilizando o portugus estruturado. Observe abaixo: -----------------------------------------------------------------------------Incio se (C4=M) ento escreva 3% seno escreva 4%
Prof. Eduardo dvila Albuquerque Pgina 7/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

fim do se fim -----------------------------------------------------------------------------Incio se (Ll4<10) ento escreva 30% seno faa se (L4<20) ento escreva 20% seno escreva 10% fim do se fim do se fim -----------------------------------------------------------------------------Frmulas absolutas So as formulas que possuem endereos absolutos, no adaptveis a linhas ou colunas adjacentes, e sim, constantes entre os itens, como o caso da porcentagem de comisso. Independente do produto a comisso de 3%. Este valor de 3% fixo, o endereo dele K3. Sendo fixo, nos clculos expressamos seu endereo como $K$3. O sinal $ significa que o elemento seguinte ao sinal constante. O endereo $K$3 lido: fixo a coluna K e fixo a linha 3. Observe a frmula utilizada: =D4*$K$3 Smbolo de igualdade, endereo varivel, sinal de multiplicao, fixao da coluna D e fixao da linha 3. Exemplos explicativos: =D4*I4, os dois endereos so adaptveis. =$M15/G$9, o primeiro endereo fixo na coluna e o segundo fixo na linha. Frmulas Complexas Por questes didticas apelidamos de frmulas complexas, todas as frmulas com a necessidade de parnteses. Muitas vezes precisamos realizar mais de uma operao em um clculo. A ordem a ser seguida ao se calcular indicada pelos parnteses. Na criao de frmulas, no utilizamos colchetes ou chaves, somente parnteses dentro de parnteses, sendo os parnteses mais internos prioritrios no clculo. Observe que a segunda frmula para o preo de venda resulta o mesmo valor que a primeira, porm concentra vrias operaes em nica frmula.
=(D4+(E4*D4)+(G4*D4)+(I4*D4)+(D4*$K$3)+(O4*L4))

Para explicao de novos comandos, na planilha manipulao e proteo de dados foi includa uma nova coluna de dados denominada Tendncia/Estilo, para isto foi utilizado o comando colunas, menu inserir, e foi excluda a ltima coluna, com o comando excluir, do menu editar.
Prof. Eduardo dvila Albuquerque Pgina 8/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Filtros Na seqncia do aprendizado de comandos avanados atravs desta planilha exemplo, notamos a necessidade de filtrar dados. Este recurso muito utilizado para melhor leitura da planilha. Para utilizar filtragem necessrio selecionar a regio da tabela que contm os dados gerais os quais se quer filtrar. O ttulo de cada coluna ser referncia para filtragem. O comando autofiltro, encontrado no menu dados, submenu filtro, prtico e til. Observe a utilizao do filtro. Na parte direita dos ttulos de colunas inserida uma caixa para acionamento do filtro, sendo que podemos filtrar por base em um campo especfico, por colocao entre os primeiros e tambm personalizar a filtragem onde podemos configurar-la usando operadores lgicos. Na planilha, queremos filtrar baseado na tendncia/estilo. Depois queremos filtrar baseado no valor de compra maior que 10, utilizando o personalizar. Para remover o autofiltro basta desativar o comando autofiltro, no menu ferramentas, submenu filtro. Protegendo Clulas No Excel, podemos evitar que nosso documento tenha sua forma original modificada. A prpria formatao, os dados e frmulas podero ser impedidos de sofrer alteraes atravs de proteo de clulas. Neste exemplo queremos proteger os campos de frmulas, afinal, os dados sofrem alteraes contnuas enquanto as frmulas permanecero as mesmas. Para selecionar as clulas de frmulas, utilize o comando ir para, menu editar, comando especial e clique em frmulas. As clulas que contm frmulas so selecionadas., utilize o menu formatar, comando clulas, guia proteo e ative a caixa travada (que impede a alterao das clulas) e a caixa oculta (que impede a visualizao das frmulas), em seguida clique em ok. Seleciona com o comando ir para as clulas constantes e no comando clulas, menu formatar, opo proteo, desative as caixas correspondentes a travada e oculta. Observe que na parte inferior desta tela existe uma instruo indicando a necessidade de utilizar o comando proteger planilha, no menu

Prof. Eduardo dvila Albuquerque

Pgina 9/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

ferramentas, sub menu proteger. Faa isto e observe que sua planilha no ser mais facilmente modificada. Protegendo arquivos O excel permite utilizao de senhas para a abertura e leitura das pastas de trabalho. Para cadastrar a senha utilize o menu arquivo, comando salvar como, boto ferramentas, opes gerais, e cadastre suas senhas. Isto faz com que o Excel exija a digitao da senha antes de abrir o documento. Salvando rea de trabalho Ao trabalhar com o Excel pode ser necessrio abrir vrias pastas de trabalho (arquivos) ao mesmo tempo para manipul-las. Caso estes arquivos sejam freqentemente acessados concomitantemente podemos usar o comando salvar rea de trabalho, menu arquivo. Isto criar um arquivo que abrir todos os outros arquivos, permanecendo as caractersticas de arquivo independente a cada um deles. Funes Funo Subtotais Observe o uso desta funo, na planilha totalizando de sua pasta de trabalho comandos avanados. Foi selecionada a regio que onde subtotal ser aplicada, clicando em dados, subtotais e informando o que queremos, conseguimos obter facilmente os totais de acordo com o grupo selecionado e o total global. (Para utilizar o subtotal baseado em uma coluna necessrio que a coluna seja base da classificao de sua tabela. Para classificar sua tabela, utilize o comando classificar, menu dados). A funo Subtotal, em sua forma escrita, semelhante a: =subtotal(9;E4:E30) onde, subtotal nome da funo, 9; o primeiro argumento, Representa qual operao o subtotal dever realizar (subtotal, no significa obrigatoriamente somatizar). Na tabela ao lado, observe que outros nmeros, que representam outras funes, podem ser utilizados. E4:E30, a faixa de clulas que onde o subtotal dever atuar.

Prof. Eduardo dvila Albuquerque

Pgina 10/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Auditoria Este comando facilita a interpretao de um dado ou clculo em uma planilha. Ative a planilha de frmulas e funes em sua pasta de trabalho comandos avanados e selecione a clula R5. notria a complexidade da frmula contida nesta clula, para melhor interpreta-la utilizamos o comando rastrear precedentes, no menu ferramentas, submenu auditoria. Posicione a clula mvel em K3, e atravs da auditoria, pea para rastrear os dependentes. No primeiro caso, o Excel indica todos os campos que foram necessrios para a construo da frmula, obtendo o resultado. No segundo caso, o Excel indica todos os resultados de frmulas que dependem diretamente deste valor. No prprio submenu auditoria, encontramos o comando remover todas as setas para limpeza de tela. Para melhor entendimento de alguma frmula, pode-se tambm pressionar a tecla F2 sobre seu resultado, permitindo a interpretao atravs de cores. Esta tecla tambm permite correes na clula. Comentrios Pode-se incluir comentrios em sua planilha para facilitar a interpretao da mesma. Para isto, basta posicionar a clula no campo e clicar no menu inserir, comentrio e edit-lo. Observe o canto superior direito da clula C3, posicionando o ponteiro do mouse sobre o canto vermelho o comentrio ser exibido. Grficos Queremos fazer um grfico comparativo entre preo de compra e de venda dos produtos da Tendncia/Estilo W. Precisamos primeiramente selecionar as reas participantes do grfico. Para selecionar clulas alternadas mantenha pressionada a tecla CTRL enquanto clique nas reas em questo. Para selecionar clulas adjacentes mantenha pressionada a tecla SHIFT e clique na clula final da seqncia. Usando o comando grfico, menu inserir, podemos criar um grfico rpido ou um grfico avanado, para isto, clique em avanar aps a escolha do tipo de grfico e na seqncia de avanos, manuseie os comandos existentes de acordo com a sua necessidade e gosto. interessante observar que as mudanas feitas na planilha alteram o grfico automaticamente. No exemplo observa-se que a filtragem dos dados resulta na clareza do grfico. Tabela dinmica Este um comando extenso e repleto de recursos para sua tabela. Chama-se Tabela Dinmica pela praticidade que manipula dados de uma tabela extensa. Acompanhe a seguir o passo-a-passo para se criao da Tabela Dinmica.
Prof. Eduardo dvila Albuquerque Pgina 11/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

1 passo: Selecionar a regio que ser includa na Tabela Dinmica (neste caso selecionamos os dados da planilha manipulao e proteo de dados), em seguida clique no menu dados, relatrio de tabela e grfico dinmicos. Vamos seguir na construo da tabela dinmica baseada nos dados selecionados no Excel , clique ento em avanar. 2 passo: Observe a confirmao da rea selecionada para criao da tabela dinmica. Clique ento em avanar. 3 passo: a estruturao da tabela dinmica, neste momento, clique em layout, e observe que aparecer uma tela para a informao e montagem dos dados nesta tabela. Construa sua tabela e clique em OK, em seguida em concluir. Observe a nova tabela gerada. uma tabela dinmica. Clique em suas setas de dinamismo para se acostumar com este novo e prtico recurso. Para melhorar a aparncia de sua tabela dinmica, utilize entre outros comandos de formatao, a ferramenta formatar relatrio e o comando mostrar pginas, na barra de ferramentas correspondente.

Para alterar a tabela dinmica encontre o menu Tabela Dinmica na Barra de ferramentas e clique em assistente, em seguida em layout.

Prof. Eduardo dvila Albuquerque

Pgina 12/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

CAPTULO 2 - TRABALHANDO COM DATAS E HORAS Trabalhar com datas e horas uma necessidade cotidiana. O Excel dispe de recursos teis para esta tarefa. Para explicao do uso de datas e horas foi elaborado outro documento exemplo chamado Trabalhando com datas. Observe todas as planilhas desta pasta de trabalho e a explicao abaixo: Digitao e Formatao Quando se digita uma planilha imagina-se automaticamente como ela deve ficar depois de formatada, mesmo assim, na maioria das vezes ao formatar nota-se a necessidade de insero ou excluso de campos. Utilizando o boto direito do mouse sobre a rea selecionada conseguimos inserir e excluir clulas. A insero ou a excluso pode ser feita atravs do menu editar. A digitao e a formatao tm que proporcionar um entendimento fcil da planilha. Funes Hoje, Dia.da.Semana, Procv No Excel existem vrias funes. O entendimento delas pode depender algumas vezes de um conhecimento prvio. Com um pouco de persistncia, muita ateno, intuio e as explicaes a seguir, voc aprender como utilizar as funes. Vamos comear aprendendo a funo hoje, encontrada no menu inserir, funo, data e hora. HOJE

Esta funoHoje(), tem a misso de mostrar a data que o Windows est adotando como sendo a data atual. A vantagem desta funo a atualizao automtica, pois quando for amanh esta funo mostrar a data de amanh, e desvantagem que esta data extrada do Sistema Operacional Windows e qualquer usurio pode modificar esta data, ento, para confiar nesta funo temos que observar constantemente a data no Windows. O fato desta funo no necessitar de argumentos que argumentos so informaes que o usurio deve fornecer para o funcionamento eficaz da funo, neste caso no precisamos informar mais nada.

Prof. Eduardo dvila Albuquerque

Pgina 13/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

DIA.DA.SEMANA

A funo dia.da.semana, encontrada no menu inserir, funo, data e hora analisa uma data (ou uma referncia a uma data) e calcula qual o dia da semana que esta data corresponde. O resultado deste clculo sempre um nmero de 1 a 7. Isto significa que se a resposta da funo foi 1, a data corresponde ao domingo. Se a resposta foi 4, ento quarta. Se a resposta foi 7, ento sbado o dia da semana corresponde data. Nesta funo tivemos que informar argumentos para ela funcionar. O 1 o argumento num.srie, onde colocamos a data ou um endereo de uma clua que contenha uma data. Este argumento obrigatrio para realizao da funo, observe que o nome deste campo est em negrito. O 2 o retornar_tipo, este campo no est em negrito, sendo ento um campo de preenchimento opcional, caso voc no o informe o excel adotar o padro que representado pelo nmero 1 e que significa que estamos considerando o domingo como primeiro dia da semana e o sbado o stimo. PROCV

Esta funo procura um determinado valor na parte esquerda de uma determinada tabela e encontra o dado posicionado na coluna determinada. Entendeu?! Nem eu. Vamos estudar campo a campo. Valor_procurado: o que desejamos encontrar. Neste campo pode-se colocar um valor, um endereo de clula ou at mesmo caracteres. O Excel estar procura do que for colocado neste campo. Matriz_tabela: a referncia do local onde o Excel dever realizar sua procura. Esta referncia deve delimitar o canto superior esquerdo e o campo inferior direito da rea
Prof. Eduardo dvila Albuquerque Pgina 14/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

de procura, ou melhor falando, da tabela. Caso esta rea da planilha tenha recebido um nome, podemos utilizar este nome. Num_ndice_coluna: a posio vertical na Matriz_tabela onde se encontra a informao desejada. a coluna onde se encontra o dado procurado. importante saber que a coluna mais esquerda de sua tabela a coluna de ndice 1 e a cada coluna para direita este ndice incrementado com +1. Procurar_intervalo: Este um campo opcional. Caso no encontre o valor procurado voc autoriza o uso da referncia mais prxima a este valor preenchendo esta campo com verdadeiro. Caso voc exija a exatido na procura do valor preencha este campo com falso. Deixando em branco, a opo escolhida ser igual a verdadeiro. Observe alguns exemplos escritos extrados diretamente da tabela: =PROCV(B7;E1:G21;2) O Excel ir procurar pelo valor indicado na referncia B7. Esta procura ser realizada na tabela iniciada em E1 e finalizada em G21. A resposta ser extrada da 2 coluna desta tabela. =PROCV(B7;E1:G21;3) neste caso a diferena que a resposta ser extrada da 3 coluna. =PROCV(B12;I1:J8;2) Procure por B12, na tabela I1:J8 e extraia a resposta da 2 coluna. =PROCV(B12;DADOS;2) Procure por B12, na tabela que recebeu o nome de DADOS e extraia a resposta da 2 coluna desta tabela. (veja observaes abaixo) OBSERVAES: 1) PROCV a unio de PROCurar com Vertical. Existe a funo PROCH, que significa procurar horizontalmente. 2) possvel dar um nome a uma faixa de clulas. Para isto selecione uma faixa de clulas qualquer (ex: E1:G21) clique em nome, no menu inserir e nomeie esta faixa de DADOS. Todas as vezes que precisar referenciar esta faixa de clulas poder utilizar a palavra DADOS. Validao Validar uma clula avisar ao Excel que os dados que podero ser inseridos na clula tem que seguir o critrio previamente informado. A clula B4, da planilha formulas-funes-validao foi validada para receber somente data, sendo que esta data deve estar entre os intervalos 01/01/1900 e 31/12/2900. Ao entrar nesta clula observe a informao cadastrada. Caso insista em preencher com dados diferentes do exigido observar uma mensagem de erro. Para se validar uma clula, use o menu dados, comando validao.

Prof. Eduardo dvila Albuquerque

Pgina 15/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Ocultar Nesta planilha foi utilizado a comando ocultar, menu formatar, submenu colunas, para esconder dados que no so importantes para o usurio, porm teis nos clculos da planilha. Podemos ocultar colunas, linhas e at planilhas inteiras. Para no exibir o contedo de uma clula pode-se tambm utilizar a cor branca. Impresso Quando for imprimir planilhas, notamos a necessidade de preparar seu documento para ser impresso. Esta preparao chamamos de paginao. Clique em visualizar impresso na barra de ferramentas e observe sua pgina. Para melhorar sua aparncia utilize o comando configurar na parte superior da tela.

Na guia pgina pode-se deitar a folha (paisagem) ou deix-la na vertical (retrato), aumentar/diminuir o tamanho normal do documento e ainda configurar o tamanho do papel. Na guia margens pode-se ajustar as margens e posicionar a tabela no centro da vertical e no centro da horizontal.

Prof. Eduardo dvila Albuquerque

Pgina 16/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Na guia cabealho e rodap podemos personalizar um cabealho e/ou um rodap. Observe que com este comando conseguimos informar a data e/ou a hora da impresso do documento, a numerao de pginas e a incluso do nome do documento. importante ressaltar que as modificaes feitas no comando configurar da visualizao da impresso pouco (ou nada) interferem na planilha. basicamente, uma preparao da planilha para ser impressa. Trabalhando com horas Na pasta de trabalho trabalhando com datas, observe a planilha controle de horas. A manipulao de horas no excel requer ateno. Voc pode formatar horas usando o comando Formatar Clulas Nmero Hora. Para calcular horas trabalhadas importante constar na planilha a Data, Entrada, Sada do Almoo, Entrada Almoo, Sada. Caso a planilha represente horrios noturnos importante expressar as horas aps as 24:00 como sendo continuao do dia e no um novo dia., exemplo: Se a sada ocorreu s 2 horas e 30 minutos da matrugada expressamos 26:30 e formatamos esta clula para que apresente 2:30. Somente assim o clculo de horas trabalhadas neste dia ser corretamente calculado. Observe a planilha exemplo. Observaes finais Cuidado: A tecla Scroll Lock, ao ser pressionada, faz o Excel movimentar a planilha inteira e no a clula mvel. Esta tecla, para quem no est acostumado, pode ser pedra de tropeos na edio da planilha. Modo de Correo: Ao tentar corrigir erro dentro de uma clula, pressione a tecla F2 sobre a clula a ser corrigida, assim voc estar usando o modo de correo e poder movimentar com o cursor sem movimentar com a clula. Aperte Enter ou F2 novamente para sair do modo correo. Pasta de trabalho e Planilha: Pasta de trabalho o arquivo enquanto as planilhas so as plan1, plan2, plan3... contidas dentro da pasta de trabalho.

Prof. Eduardo dvila Albuquerque

Pgina 17/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

CAPTULO 3 - TECLAS DE ATALHO As teclas de atalho so comandos executados via teclado que realizam funes supostamente inerente unicamente ao mouse. Uma tecla de atalho no Word pode ter uma funo e no Excel outra funo. Porm corriqueiro ocorrer das funes serem as mesmas, ento, importante testar as teclas no somente no programa especificado abaixo, como tambm, em outros softwares. NO WORD Negrito, Itlico, Sublinhado Centralizar Selecionar Incio/Fim de linha Incio do documento Final do documento Imprimir Desfazer Apagar uma palavra inteira Abrir um arquivo Recortar Colar Copiar Localizar um texto Ortografia e Gramtica Subir/Descer pgina de vdeo Ajuda Sobrescrever textos Copiar viso da tela Interfere no mover o Mouse Salvar Tamanho da Fonte Incio/final de linha CTRL + N, I, S CTRL + E SHIFT + setas direcionais HOME, END CTRL + HOME CTRL + END CTRL + P CTRL + Z CTRL + DELETE CTRL + A CTRL + X CTRL + V CTRL + C CRTL + L F7 Page Up , Page Down F1 Insert Print Screen ALT Ctrl + B CTRL ] ou CTRL [ HOME , END

NO EXCEL Mover at a borda da regio atual Mover uma tela para direita ou esquerda Ativar a planilha da esquerda ou da direita Mover entre pastas de trabalho Travar o movimento da clula Inserir planilha Exibir caixa de dilogo Macro Iniciar uma nova linha na mesma clula Repetir ltima ao Definir nomes Editar uma clula Frmula AutoSoma Inserir data atual Inserir Hora atual Copiar frmula da clula acima

CTRL + teclas de direo ALT + PAGE DOWN , ALT + PAGE UP


CTRL + PAGE DOWN, CTRL + PAGE UP

CTRL +TAB SCROLL LOCK SHIFT + F11 ALT + F8 ALT + ENTER F4 CTRL + F3 F2 ALT + = CTRL + ; CTRL + SHIFT + ; CTRL + F
Pgina 18/45

Prof. Eduardo dvila Albuquerque

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Janela Formatar Clula CTRL + 1 Formato nmero geral CTRL + SHIFT + ~ Formato Moeda CTRL + SHIFT + $ Borda simples CTRL + SHIFT + & Ocultar Linhas CTRL + 9 Reexibir Linhas CTRL + SHIFT + ( Ocultar colunas CTRL + 0 Reexibir linhas CTRL + SHIFT + ) Inserir Clulas Vazias CTRL + SHIFT + sinal de adio Excluir seleo CTRL + hfen Selecionar regio de dados CTRL + * (teclado numrico) Selecionar at a ltima clula no-vazia CTRL + SHIFT + teclas de direo Selecionar at o incio (final) da planilha CTRL + SHIFT + HOME (END) Selecionar at o incio (fim) da linha SHIFT +HOME (END) Selecionar todas as clulas com comentrio CTRL + SHIFT + O Selecionar somente as clulas visveis ALT + ; Preencher a seleo os dados atuais CTRL + ENTER A tecla ALT seguida da letra que estive sublinhada nos menus ou comando , aciona o respectivo Menu ou Comando OBSERVAO: No Microsoft Excel, voc encontra uma lista de teclas de atalho utilizando a ajuda (F1), consultando por TECLAS DE ATALHO. Segunda Parte CAPTULO 4 - INTRODUO AO VBA Introduo Seja bem vindo segunda parte deste curso: a programao em VBA (Visual Basic for Application). Nesta parte aprenderemos a criar comandos novos para o Excel otimizando suas tarefas e conhecendo assim, um pouco do universo da programao (orientada a objetos) de computadores.

Prof. Eduardo dvila Albuquerque

Pgina 19/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Conceitos Iniciais Objeto: A maneira mais fcil de entender o que so objetos no Excel compar-los a objetos do mundo real. No mundo real, a cidade, a escolas, a sala de aula e o aluno so objetos. Uma cidade salpicada de escolas, uma escola cheia de salas de aula, uma sala de aula lotada de estudantes e todos os estudantes so arrumados em filas organizadas. No Excel podemos dizer que a pasta de trabalho (workbook), a planilha (sheet), a linha (row), a coluna (column) e a cada clula (cell) so objetos do Excel. Coleo de Objetos: No mundo real o objeto pertence a uma classe de objetos, exemplo: um aluno pertence classe de objeto alunos, uma escola a classe de objetos escolas. Assim tambm no Excel, o objeto workbook (pasta de trabalho) pertence coleo workbooks (pastas de trabalhos), o objeto sheet (planilha) a coleo sheets, o objeto row (linha) coleo rows (linhas), o objeto column (coluna) a uma coleo columns (colunas). Observe que uma coleo de objetos um objeto, individual, de outra classe, exemplo: a escola Granbery um item da coleo Escolas, e ao mesmo tempo Granbery uma coleo de objetos. Cada objeto pertence a uma coleo de objetos similares e cada coleo de objetos um item individual dentro de uma coleo maior. Pode referenciar-se ao Granbery assim: Pelo nome: Escola Granbery possui um ensino de qualidade... Pelo Item: Das escolas particulares, a segunda alfabtica possui um ensino de qualidade.... na ordem

Diretamente: esta escolha aqui possui um ensino de qualidade... No excel... Pelo nome: Worksheets(Granbery) Pelo Item: Worksheets.item(2) Diretamente: Activesheet.

Prof. Eduardo dvila Albuquerque

Pgina 20/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Objetos tm Propriedades: Propriedades so caractersticas. Exemplo: O aluno da sala 304, sentado na quarta carteira da segunda fila tem cabelo curto, camisa azul, sua altura 1,75m e seu nome Rafael e o estado dos olhos fechado. Tudo isso so as propriedades do objeto Aluno. O Douglas, sentado frente dele tambm possui as propriedades cabelo, camisa, nome, altura e o estado dos olhos, porm os valores de suas propriedades so diferentes. O aluno de nome Rafael um objeto diferente do aluno de nome Douglas, mas cada um um objeto estudante. A Carteira tambm um objeto. Objeto carteira tambm possui a propriedade altura, mas no possui a propriedade cabelo, assim tambm, objeto carteira possui a propriedade fabricante objeto aluno no. Os objetos que possuem as mesmas propriedades (mesmo que estas propriedades possuam valores diferentes) pertencem mesma classe. O Rafael um objeto da classe estudante. Todos os alunos formam a classe Estudantes. Esta classe tambm um objeto. A coleo de estudantes tem suas prprias propriedades. A propriedades da coleo no so as mesmas propriedades dos objetos individuais contidos nela. A propriedade cabelo no existe no objeto Estudantes, existiria para qu?. Enquanto a propriedade quantidade (count) de grande importncia para o objeto Estudantes. No esquea, objetos que possuem lista de propriedades iguais pertencem mesma classe de objeto (mesmo que os valores das propriedades sejam diferentes). O Rodrigo, de outra sala, um objeto e pertence mesma classe de objetos estudante, assim como Rafael, pois possui as mesmas propriedades. O objeto estudantes da sala 1 e o objeto estudantes da sala 2 possuem as mesmas propriedades e ambas pertencem classe de objetos estudantes. Assim dizemos que no excel a classe planilhas(sheets) contm a planilha Escola - Sheets(Escola) e tambm contm a planilha Cursos Sheets(Cursos). Considerando que as planilhas Escola e Cursos estejam no mesmo arquivo chamado Educao, dizemos que estas planilhas so objetos individuais da classe Pasta de Trabalho Workbooks(Educao). Objetos tm Mtodos: Mtodos so aes. Objeto tem mtodos. Objetos de mesma classe possuem os mesmos mtodos, assim como as propriedades. Da mesma maneira que classes de objetos diferentes possuem propriedades diferentes, estas classes diferentes possuem mtodos diferentes. O mtodo mais comum o adicionar (add). Podemos adicionar um estudante novo classe estudantes. A distino entre mtodo e propriedade difcil devido notria semelhana, afinal olhos fechados uma propriedade do estado dos olhos ou uma ao de fechar os olhos? Todavia, o cotiano se encarrega de realar as diferenas entre mtodo e propriedade. Observe os conceitos seguintes. Mtodos podem mudar propriedade: Ao adicionar (add, mtodo) um estudante, automaticamente modifica a quantidade (count, propriedade) de estudantes. Propriedades podem envolver aes: Visvel ou no? Visibilidade de uma planilha uma propriedade da planilha, porm ao fazer isto notamos que a planilha sumiu, parecendo uma ao.

Prof. Eduardo dvila Albuquerque

Pgina 21/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Tabela de significados Observe a tabela abaixo, possui termos utilizados freqentemente nesta parte da curso. Alguns significados so simplesmente tradues do ingls para o portugus, enquanto outros significados sofreram adaptaes para expressarem a sua verdadeira funo no Excel. TERMO Active Add Application Book(s) Cell(s) Column(s) Copy Count Current Entire Integer Paste Range Region Row(s) Select Selection Sheet(s) Sub Work False, True
Prof. Eduardo dvila Albuquerque -

SIGNIFICADO Ativo Adicionar Aplicativo (no caso, Excel) Pasta de trabalho(s), arquivo(s), documento(s) Clula(s) Coluna(s) Copiar Quantidade, Atual Tudo N Inteiro Colar Clula, Cadeia de Clulas Regio Linha(s) Selecionar, marcar, escolher Seleo, marcado, escolhido Planilha(s) Incio de uma sub- rotina Trabalhar, utilizar Falso, Verdadeiro
Pgina 22/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Macro A macro um mini programa que realiza as tarefas contidas nela. Pode-se dizer que uma macro tem a capacidade de armazenar os comandos que utilizamos no Excel transformando-os em linhas de instruo dando assim a aparncia de programao. Para trabalhar com a macro pode-se utilizar o submenu macro, menu ferramentas, ou ativar a barra de ferramentas no menu exibir, submenu barra de ferramentas, Visual Basic. Gravando uma macro Abra o arquivo exemplo Planilha do Geral , Siga o passo-apasso abaixo para criar uma macro para formatao de moeda chamada de FormatarMoeda. Passo 1) Selecione a faixa C4:F5. Passo 2) Clique na ferramenta gravar macro da barra de ferramentas do Visual Basic. No campo nome da macro escreva o nome da sua macro. Este nome no pode conter espaos ou smbolos especiais. Pode-se definir uma tecla de atalho para sua macro e tambm descrever algo sobre ela. Coloque o nome de FormatarMoeda, tecla CTRL+SHIFT+M, e descreva falando que sua primeira macro. Clique em Ok. Passo 3) Passo 4) Clique em formatar, clulas, moeda, casa decimais zero. OK. Clique em Parar a gravao

Executando uma macro Passo 1) Passo 2) Passo 3) Selecione a faixa C6:F7. Clique na ferramenta executar macro. Selecione a macro FormatarMoeda e clique em executar.

Examinado uma macro Passo 1) Passo 2) Clique na ferramenta executar macro. Selecione a macro FormatarMoeda e clique em Editar.

Neste momento, a janela do Editor do Visual Basic exibida, contendo nela a macro criada. A sua macro tem o seguinte formato:
Sub formatarmoeda() ' ' formatarmoeda Macro Prof. Eduardo dvila Albuquerque Pgina 23/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

' Macro gravada em 29/09/2002 por Eduardo ' ' Atalho do teclado: Ctrl+Shift+M ' Selection.NumberFormat = "$#,##0" End Sub

As linhas que comeam com apstrofo so linhas de comentrios. Os comentrios so importantes para o programador, porm so linhas ignoradas pelo Visual Basic. Tudo que no for comentrio uma linha de instruo que dever ser lida pelo Excel quando a macro for executada. Sub seguido do nome da macro. Vem da palavra sub-rotina de um programa. No nosso caso Sub indica o incio da macro. End Sub, diz ao Visual Basic para encerrar a macro. Todas as instrues entre Sub e End Sub formam o corpo da macro. Selection.NumberFormat = "$#,##0". A nica real instruo desta macro. Selection parte selecionada da planilha. Selection o objeto. NumberFormat = , a propriedade do objeto. Quando o gravador de macro incluir o sinal de igualdade na instruo (=) a palavra esquerda deste sinal normalmente uma propriedade. Propriedade precedida por um objeto. O objeto e propriedade so separados por um ponto (.). "$#,##0", a informao que est direita do sinal de igualdade a que fica designado para a propriedade. Dica para facilitar: Para melhor interpretao das instrues inclua sempre a palavra objeto antes da leitura do nome do objeto, e a expresso sua propriedade antes da leitura da propriedade. Leia-se ento: O objeto Selection ter sua propriedade NumberFormat igualada a $#,##0, Traduzindo melhor: O objeto selecionado ter sua propriedade formato do nmero igualada a $#,##0, Gravando outra macro Mudando vrias propriedades de uma s vez Siga o passo-a-passo para criar uma macro que mescle o texto verticalmente chamada de MesclarVertical. Passo 1) Selecione a faixa A3:A8 e d um clique em Gravar macro; de dilogo Gravar macro, coloque o nome Passo 2) Na caixa MesclarVertical e clique em OK.

Passo 3) Clique no menu formatar, clulas, na guia alinhamento ative a caixa de seleo mesclar clulas, mude a orientao para 90, centralize o alinhamento horizontal e vertical. Observe o restante da tela que voc no modificou e em seguida clique em OK.

Prof. Eduardo dvila Albuquerque

Pgina 24/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Passo 4) Clique em Parar Gravao. Clique em Executar macro, selecione a macro MesclarVertical e clique em Editar. Eliminando as linhas desnecessrias, observe o formato de sua macro.
Sub MesclarVertical() With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Orientation = 90 .MergeCells = True End With End Sub Incio da macro Incio da Estrutura With (detalhes abaixo.) Objeto Selection (o que est Selecionado) Propriedade Alinhamento horiz. = centro Propriedade Alinhamento Vert. = centro Propriedade Orientation = 90 graus Propriedade Mesclar Clulas, marcada. Final da Estrutura With Final da macro

Estrutura With usada quando precisamos modificar vrias propriedades de um objeto facilitando a leitura da macro pelo usurio. No caso, a estrutura With est relacionada com o objeto Selection, significando que todas as propriedades descritas at a instruo End With pertence a este objeto. Modificando uma Macro Alternao

Siga o passo-a-passo para conseguir criar uma macro que realizar a tarefa de exibir/ocultar as linhas de grade de uma planilha. Esta macro chamar TrocarGrade. O objetivo fazer uma macro que ative e tambm desative as linhas de grade. Passo 1) Clique em Gravar Macro, em seguida clique em ferramentas, opes e desmarque a caixa Linha de grade. Passo 2) Passo 3) Clique em Parar Gravao. Edite esta macro e interprete a linha de instruo.
Sub TrocarGrade() ActiveWindow.DisplayGridlines = False End Sub

Esta linha, leia-se: objeto ActiveWindow na sua propriedade DisplayGridLines ser false. Quando uma propriedade definida como false, significa que o outro valor existente para ela true. E se ela for definida como true obviamente as linhas de grades aparecero. Pode-se criar uma macro para colocar as linhas e outra para retirar, como tambm pode-se modificar esta macro para que ela mesma coloque e retire as linhas. Passo 4) Modifique sua macro para que esta fique assim
Sub TrocarGrade() Dim GradeAtual as boolean Prof. Eduardo dvila Albuquerque Pgina 25/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

GradeAtual = ActiveWindow.DisplayGridlines ActiveWindow.DisplayGridlines = Not GradeAtual End Sub

A Segunda instruo reserva um espao na memria do computador para informaes boleanas, ou seja reserva uma espao na memria para informaes True (verdadeira) ou False (falso). A este espao foi dado o nome de GradeAtual. GradeAtual uma varivel do tipo boleana. A terceira instruo guarda na Varivel GradeAtual o estado da propriedade .DisplayGridlines pertencente ao objeto ActiveWindow. A quarta instruo tem a novidade do NOT (no), que inverte o valor de GradeAtual, explicando melhor: Ao inicar a macro, GradeAtual guarda o valor atual da grade (True/False) e em seguida muda a propriedade grade para o oposto (not) ao que estava guardado (False/True). Acompanhando o funcionamento da Macro

Estando o curso posicionado entre Sub e End Sub, pressione a tecla F5 para executar a macro automaticamente ou a tecla F8 para executar a macro instruo por instruo. Atalho para a Macro Teste esta macro estando na planilha. Para facilitar a utilizao desta macro, clique em executar macro, selecione a macro TrocarGrade, clique em opes e inclua o atalho CTRL+SHIT+T. (Cuidado, o atalho para a macro, pode desativar um atalho para algum comando no Excel, utilize sempre o Shift para diminuir as possibilidades disto acontecer). Teste a macro usando a tecla de atalho CTRL+SHIT+T. Trabalhando com mtodos Mudar a aparncia das clulas uma propriedade das clulas. Poder ser copiada, depois colada j um mtodo (uma ao) que est sendo feita com aquela clula. A macro a seguir, chamada de ConverterParaValores, vai converter as frmulas de nossa tabela em valores numricos. Siga os passos: Passo 1) Selecione a Clula C4 e observe a frmula. Clique em Gravar Macro, nomeie para ConverterParaValores, clique em Ok. Passo 2) Passo 3) clique em OK. Clique no menu Editar, em seguida no comando Copiar Clique em menu Editar, Colar Especial, selecione a opo Valores e

Passo 4) Pressione a tecla ESC para desaparecer a linha pontilhada desativando assim o modo Copiar. Passo 5) Clique em Parar Gravao. Observe que a frmula deixou de existir mostrando somente o resultado.

Prof. Eduardo dvila Albuquerque

Pgina 26/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Passo 6) Mude para o Editor do Visual Basic (VBA). Observe sua macro, e coloque um espao seguido do sinal _ (underline, subtrao) para informar que a linha de instruo continua na linha abaixo. Faa sua macro ficar com esta aparncia.
Sub ConverterParaValores() Selection.Copy Selection.PasteSpecial Paste:=xlValues, _ Operation:=xlNone, _ SkipBlanks:=False, _ Transpose:=False Application.CutCopyMode = False End Sub

A segunda instruo significa: Objeto Selection far o mtodo (ao) copiar. Como no tem nenhum sinal de igualdade a expresso direita do ponto representa um mtodo. Este mtodo (ou esta ao) no precisa de argumentos (especificar como fazer). A terceira instruo, estruturada agora em 5 linhas, significa: O objeto Selection far o mtodo PasteSpecial (Colar Especial), porm... este mtodo precisa de argumentos, ento para fazer este mtodo foi respondido ao argumento paste (colar) a informao xlvalue (valores), ao operate (operao) a informao Xlnome (nenhuma). Os outros dois argumentos so relativos a transpor e ignorar em branco, no caso desnecessrias, por isso, sero excludas da macro juntamente com o segundo argumento que padro. Depois disto, observe como sua macro ficou:
Sub ConverterParaValores() Selection.Copy Selection.PasteSpecial Paste:=xlValues Application.CutCopyMode = False End Sub

Um Objeto tem mtodos e este mtodos podem ter argumentos ou no. Quando no possuem argumentos este mtodos so simplesmente escritos aps o objeto. Quando o mtodo possui argumentos estes devem ser colocados aps o mtodo separados apenas com espao. Os valores para os argumentos devero ser atribudos a este com o smbolo de := (chamado de recebe). Os argumentos no fazem nenhum ao especfica, apenas avisam ao mtodo como deve fazer a ao. Os mtodos podero ter vrios argumentos que devero ser separados por uma vrgula (,). CAPTULO 5 - MACRO - TAREFAS EXTENSAS

Imagine que todo ms voc recebe via e-mail um relatrio de pedidos do ms da filial da firma onde trabalha. Este relatrio ter que ser modificado para se enquadrar no seu arquivo de pedidos geral da firma. Esta modificao inclui em vrios passos. Fazer isto uma nica vez no to trabalhoso,mas, fazer isto vrias vezes, necessrio uma macro para facilitar o servio. Macros que realizam tarefas extensas devem ser divididas em vrias partes. Neste caso vamos dividir o servio em 5 partes, Abrindo o arquivo, Preenchendo os rtulos
Prof. Eduardo dvila Albuquerque Pgina 27/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

vazios, Adicionando a data, Incluindo o antigo-relatrio no arquivo de pedidos, excluindo o antigo-relatrio. Os arquivos modelos deste captulo sero o PedGeral.dbf e o RelMs.txt,. Observe que nenhum destes pertencem ao Excel. O Excel ser usado apenas para manipul-los. Abrindo um Arquivo de Relatrio Passo 1) Comece uma nova pasta de trabalho no Excel e salve-a como Adaptar.xls. ( importante que o local da gravao seja o mesmo dos arquivos anteriores). Para facilitar a criao da macro abaixo deixe esta pasta restaurada, e no maximizada. Clique em gravar macro, nomeie como ImportarArquivo e clique em OK. Passo 2) Clique em Abrir. Passo 3) Digite em nome do arquivo: RelMs.txt. Clique em abrir. Como este arquivo no pertence ao Excel, a etapa 1 do Assistente de Importao de texto aparece. Clique em Largura fixa, e coloque o incio da importao de linhas igual a 4.. Verifique se a origem do arquivo est com Windows (ANSI). Considere as demais etapas do assistente com opo padro clicando em concluir. Passo 4) Arraste a borda inferior da janela nova para cima de modo que se possam ver as guias da parte inferior da pasta de trabalho Adaptar. Arraste a nica planilha do arquivo RelMs.txt (chamada de RelMs) para a direita da planilha Plan1 do seu arquivo Adaptar. Logo aps observe que o documento RelMs.txt desaparece, pois no se pode mostrar uma pasta de trabalho no Excel sem planilhas, ento o Excel fecha esta arquivo automaticamente. Passo 5) A linha 2 contm sinais de igualdade desnecessrios. Selecione a clula A2 e no menu Editar d um clique no comando Excluir. Selecione a opo linha inteira e clique em OK. Passo 6) Selecione a clula A1 e d um clique no boto desativar o gravador. Passo 7) Salve a pasta de trabalho Adaptar. e observe a sua macro. Para interpret-la utilize a tecla F8. Passo 8) Observe que algumas instrues desnecessrias para um programa foram tambm gravadas. o caso das linhas de instruo sobre arrastar da janela. Exclua estas linhas e tambm as linhas de comentrio. Estruture melhor sua sub-rotina para melhor interpretao dos comandos. Lembre-se que para futuras interpretaes da sua macro voc pode adicionar comentrios. Voc pode transformar linhas de instruo temporariamente em linhas de comentrio para avaliar se esta linha de importncia na macro. Observe sua macro, ela deve estar semelhante a macro abaixo:
Sub ImportarArquivo() 'este mes vou abrir este arquivo e o mes que vem? Workbooks.OpenText Filename:= _ "C:\Meus documentos\Excel VBA 2002\RelMes.txt.txt", _ Origin:=xlWindows, _ StartRow:=4, _ Prof. Eduardo dvila Albuquerque Pgina 28/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), _ Array(8, 1), _ Array(20, 1), _ Array(25, 1), _ Array(39, 1), _ Array(50, 1)) Sheets("RelMes.txt").Select Sheets("RelMes.txt").Move Before:=Workbooks("adaptar.xls").Sheets(1) Range("A2").Select Selection.EntireRow.Delete Range("A1").Select End Sub

Selecionando o arquivo na execuo da macro Passo 1) Este ms o arquivo que ser aberto o RelMes.txt. No prximo ms voc poder ter que abrir um arquivo com o contedo semelhante e o nome totalmente diferente. Ento se faz necessrio escolher o arquivo que ser aberto em meio a execuo da macro e guardar o nome do arquivo escolhido em uma varivel Para isto, copie a instruo a seguir logo acima da instruo que inicia com Workbooks
Dim MeuArquivo as string MeuArquivo = Application.GetOpenFilename("text files,*.txt")

Passo 2) Na linha correspondente ao arquivo que esta sendo aberto coloque o nome da varivel (MeuArquivo) que contm o nome do arquivo que desejamos abrir. Passo 3) Troque a expresso Sheets(RelMes.txt).Move para ActiveSheet.Move e exclua a linha Sheets(RelMs.txt).select. Observe ento a aparncia de sua macro. Use o F8 vrias vezes para acompanhar a execuo da macro.
Sub ImportarArquivo() MeuArquivo = Application.GetOpenFilename("text files,*.txt") Workbooks.OpenText Filename:=MeuArquivo, _ Origin:=xlWindows, _ StartRow:=4, _ DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), _ Array(8, 1), _ Array(20, 1), _ Array(25, 1), _

Prof. Eduardo dvila Albuquerque

Pgina 29/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Array(39, 1), _ Array(50, 1)) ActiveSheet.Move Before:=Workbooks("adaptar.xls").Sheets(1) Range("A2").Select Selection.EntireRow.Delete Range("A1").Select End Sub

O gravador de Macro utilizou o objeto Range que significa clula, ou cadeia de clulas. Como a macro foi executada muitas vezes, existe em sua pasta de trabalho Adaptar vrias cpias da RelMs. Por enquanto, deixe-as. Voc acaba de concluir esta primeira etapa.

Preenchendo valores ausentes Observe o seu relatrio. Este possui alguns espaos vazios que, dedutivamente, representam os mesmos valores da parte superior. Para o Excel isto um problema que ser resolvido atravs da macro a seguir. Passo 1) Selecione uma cpia da planilha RelMs. Passo 2) Clique em gravar macro, digite PreencherRtulos. Clique em OK. Passo 3) Selecione a clula A1, (mesmo que j esteja selecionada), Pressione CTRL+ * (ou CTRL + SHIFT + * caso utilize o teclado principal em vez do numrico) para selecionar a regio. Clique em Editar, comando Ir para. Clique em especial e em seguida clique na opo Em branco. Observe que ao clicar em OK, somente as clulas vazias desta regio esto selecionadas. Passo 4) Digite =, pressione a seta para cima e em seguida CTRL+ Enter. Passo 5) Pressione CTRL+* Passo 6) Selecione o menu Editar e d um clique em Copiar. Em seguida, selecione o menu Editar e d um clique em Colar especial. D um clique na opo Valores, e em OK. Passo 7) Pressione a tecla ESC para sair do modo copiar e selecione A1. Passo 8) D um clique no boto Parar gravao, e salve a pasta de trabalho. Sua macro tem a seguinte aparncia:
Sub PrencherVazios() Range("A1").Select Selection.CurrentRegion.Select Selection.SpecialCells(xlCellTypeBlanks).Select

Prof. Eduardo dvila Albuquerque

Pgina 30/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Selection.FormulaR1C1 = "=R[-1]C" Selection.CurrentRegion.Select Selection.Copy Selection.PasteSpecial Paste:=xlValues Application.CutCopyMode = False Range("A1").Select End Sub

Das instrues acima, observe a Selection.FormulaR1C1 = "=R[-1]C", O objeto selection na sua propriedade formulaR1C1 (R de Row=linha, C de Column=Coluna) vai ser igual ao prprio R subtrado de -1 e C. Entenda isto: D3 a referncia que representa Coluna D e linha 3, se a frmula na macro indica R-1 ( linha 1) e C (coluna), podemos dizer que a frmula representa D que a mesma coluna e 2 que a linha atual 1. Esta frmula foi criada assim porque ao digit-la apertamos CTRL + Enter. Indicamos, ento, que a mesma frmula dever ser aceita por toda a rea selecionada. Assim toda clula selecionada possui uma frmula que faz com que o resultado de cada clula seja igual ao valor inscrito na clula superior a ela. Adicionando uma Coluna de Data

Para saber de que perodo so estes pedidos se faz necessrio uma coluna de data. Para criar e preencher esta coluna faa uma macro: Passo 1) Selecione a planilha que tenha os rtulos preenchidos e clique em Gravar Macro, adicione o nome AdicionarColunasDatas, clique em OK. Passo 2) Passo 3) Passo 4) Passo 5) Selecione a clula A1, escolha o comando coluna no menu inserir. Digite Data na clula A1 e pressione Enter. Selecione a regio pressionando CTRL + *. Selecione as clulas Em Branco, clicando em Editar, Ir para, Especial.

Passo 6) Digite Nov-2002 e pressione CTRL + Enter para preencher as outras clulas com esta data. Passo 7) Selecione a clula A1, e clique em Parar Gravao.

Percorra a macro pressionando F8 ou F5 e observe que neste caso sempre ser colocada a data de nov-2002. Seguindo as explicaes abaixo, modifique a macro para que venha solicitar a data. A instruo abaixo diz ao Excel: Reserve um espao da memria; Chame este espao de MinhaData; Prepare-se para guardar neste espao uma data. Esta instruo dever ser inserida no incio da macro logo abaixo do comando Sub( ). Dim MinhaData as date

Prof. Eduardo dvila Albuquerque

Pgina 31/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Existe uma instruo que faz uma pergunta ao usurio e aguarda a resposta para continuar a execuo da tarefa. Esta instruo uma funo9 do Visual Basic chamada de InputBox (). Basta colocar conforme abaixo: MinhaData = InputBox (Qual a data deste relatrio? Formato Mmm-yyyy.) Neste caso, o que for escrito ao se perguntar a data ser guardado na varivel MinhaData. A conferncia do que foi digitado com o que se esperava que fosse digitado no foi programada. A tecla cancelar tambm no est programada no momento. Edite a sua macro fazendo as alteraes propostas. Finalmente compare sua macro com o modelo abaixo.
Sub AdicionarColunasDatas() Dim MinhaData as date MinhaData = InputBox("Entre com a data do relatrio no formato Mmm-yyyy") Range("A1").Select Selection.EntireColumn.Insert ActiveCell.FormulaR1C1 = "Data " Range("A2").Select Selection.CurrentRegion.Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = MinhaData Range("A1").Select End Sub

Interpretando macros j criadas e criando sem passo-a-passo At aqui esta apostila foi dando um passo-a-passo para voc criar suas macro. Para forar a interpretao, criao e leitura das macros estaremos doravante escrevendo as macros apenas com linhas de comentrios. Observe as duas macros abaixo, realizadas para esta mesma planilha. Vamos interpret-las? Observe os comentrios. Os nomes dos arquivos podero ser diferentes.
Sub IncluirAoBancoDeDados() ''selecionei A1, deletei a linha inteira, selecionei a regio e copiei. Range("A1").Select Selection.EntireRow.Delete Selection.CurrentRegion.Select Selection.Copy 'abrindo o arquivo de banco de dados Workbooks.Open Filename:= _ "C:\Meus documentos\Excel VBA 2002\Pedidos.dbf"
9

Funo: As linguagens de programao possuem mini-programas j prontos que realizam tarefas corriqueiras. Perguntar algo para o usurio comum para programadores por isso o VBA incorporou esta funo da linguagem VB. Prof. Eduardo dvila Albuquerque Pgina 32/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

'mexendo com a barra de rolagem ActiveWindow.SmallScroll Down:=64 ActiveWindow.ScrollRow = 1 'Para auto-ajuste da largura da coluna A foi usado os 2 clique no rtulo da coluna. Columns("A:A").EntireColumn.AutoFit 'fui para a ltima linha escrita desta coluna Selection.End(xlDown).Select 'A instruo abaixo significa: ' Selecione a clula que est uma linha abaixo da atual. A clula atual considerada a primeira clula (A1) desta rea atual. ActiveCell.Offset(1, 0).Range("A1").Select 'Cole na planilha ativa ActiveSheet.Paste 'desativei o copiar Application.CutCopyMode = False 'selecionei a regio Selection.CurrentRegion.Select 'ao arquivo ativo, que um banco de dados foi atribuido 'os novos dados selecionados Selection.Name = "Database" 'fechei o arquivo ativo optando por gravar as alteraes ActiveWorkbook.Close savechanges:=True 'selecionei coluna a1. Range("A1").Select End Sub -------------------------------------------------------------------------------------------------Sub ExcluirPlanilha() avisei para no emitir a pergunta de confirmao Application.DisplayAlerts = False deletei as planilhas selecionadas da janela ativa Prof. Eduardo dvila Albuquerque Pgina 33/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

ActiveWindow.SelectedSheets.Delete End Sub

Criando sozinho uma macro J esta na hora de voc criar uma macro sozinho. Crie uma para executar as outras macros desta planilha. Confio em voc. Bom, terminamos mais um captulo. CAPTULO 6 - APRENDENDO A APRENDER Verificao Imediata Neste captulo estaremos aprendendo a trabalhar com a janela de verificao imediata do VBA. Ento clique no boto Editor do Visual Basic na barra de ferramentas do Visual Basic e em seguida clique em Exibir Cdigo para mostrar a rea de cdigo e tambm em Exibir Janela de Verificao Imediata. O Visual Basic abre uma tela de Edio de comandos. Tudo o que for digitado dentro desta tela ser automaticamente executado ao se apertar a tecla Enter. Dica: Caso deseja repetir a execuo do comando digitado basta posicionar o cursor novamente sobre a linha do comando e apertar a tecla Enter novamente. Caso queira incluir uma linha vazia entre linhas j escritas utilize o comando CTRL + ENTER. Para iniciar um comando pressione CTRL + ESPAO para que o VBA Basic exiba uma lista de comandos para facilitar seu trabalho. Digite os comando abaixo na Verificao Imediata e observe o que acontece com seu Excel.
Incio Workbooks.Add WorkBooks(7).Activate Worksheets(2).name = "Cobrana" Worksheets(3).select activesheet.name = "Atrasados" Workbooks(5).Activate ActiveWorkbook.Close ?Workbooks.Count 1 Workbooks.Close Workbooks.add Range("A1:b50").Select selection.value = "S.O.S." Rows(2).select Selection.Delete RAnge("A50").Select ?ActiveWorkbook.name Pasta7 Fim

As propriedades de somente leitura dos objetos, devero ser antecedidas por ? para serem exibidas na linha inferior ao comando.

Prof. Eduardo dvila Albuquerque

Pgina 34/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Voc pode tambm manipular vrias planilhas ao mesmo tempo. Observe a instruo abaixo. Workbooks.Add ?Workbooks.count 5 1 Worksheets.Add Worksheets(array(1,3,5)).select

A lista de ajuda (Auto List) pode no est aparecendo automaticamente para alguns comandos. Isto acontece quando o excel no consegue definir exatamente a classe que o objeto pertence. Observe o caso do comando ActiveSheet. Para que a lista de ajuda aparea necessrio avisar ao Excel a classe deste objeto, pois assim, possvel ao Excel exibir a Auto List com os mtodos e propriedades inerente aos objetos desta classe.. Para determinar isto ao Excel se faz necessrio o uso de varivel. Clique em Inserir Mdulo e escreva o seguinte:
Sub Teste() Dim MinhaPlanilha As Worksheet Set MinhaPlanilha = ActiveSheet MinhaPlanilha.Name = "Teste" End Sub

A primeira linha esta instruindo ao Excel que a varivel MinhaPlanilha s representar uma planilha. J na segunda linha esta avisando que a varivel refere-se a planilha ativa e na terceira instruo muda-se a propriedade name da minha varivel que representa uma planilha, automaticamente, mudando o nome da planilha. Usa-se declarao de varivel , entre alguns outros fatores, para forar a exibio da Auto List que muito nos ajuda. Pesquisador de Objetos Este comando ajuda voc encontrar objetos que podem ser trabalhados na sua planilha. Imagine uma situao onde se faz necessrio o controle das linhas escritas no Excel. Ser que existe um objeto referente a linhas? A qual classe este objeto pertence? Quais so suas propriedades e mtodos? Usando o pesquisador de objeto e muita intuio (principalmente no caso de iniciantes em programao!!!) voc descobrir objetos teis para determinadas situaes. Lista automtica de propriedades de mtodos Ao digitar o nome de um objeto e em seguida o ponto, o Excel automaticamente exibi a AutoList. Uma lista de propriedades e mtodos inerentes ao objeto. Observando esta lista com ateno voc descobrir mtodos e propriedades teis para casos particulares. importante relacionar os smbolos que antecedem aos itens da lista com propriedades ou mtodos. CAPTULO 7 CRIANDO, MANIPULANDO E PERSONALIZANDO BOTES Neste captulo voc poder alterar os botes e menus do seu Excel, como tambm criar novos.
Prof. Eduardo dvila Albuquerque Pgina 35/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

V em seu Excel e clique em ferramentas, personalizar, comandos. Observe que todos os menus esto descritos do lado esquerdo da tela e do lado direito so mostrados os botes referentes ao menu escolhido.

Estando nesta tela pode-se ainda clicar nas barras de ferramentas do Excel ou nos Menus. Isto nos permite uma alterao completa da tela do Excel. Observe que voc pode retirar qualquer boto ou menu da tela do Excel apenas arrastando para esta tela . Podemos ainda incluir novos comandos, levando botes desta tela para as barras de ferramentas do Excel e/ou menus. Cuidado as alteraes da aparncia geral do Excel podem te beneficiar e prejudicar a muitos outros usurios. Quando se clica em algum boto das barras de ferramentas do Excel voc est autorizando o Excel a interpretar as linhas de instruo relativas a este boto. O conhecimento recm adquirido com este material possibilitou-o a criar linhas de instruo para o Excel atravs do VBA. Resta agora aprender a criar um boto para que este referencie as linhas de instruo previamente criadas as macros. Para melhor explicao deste captulo, salve um arquivo novo no Excel com o nome de Aula de Botes. V ao Editor do Visual Basic e edite as linhas de instruo abaixo, criando assim duas macros MaisZoom e MenosZoom.
Sub MaisZoom() Dim numero As Integer numero = ActiveWindow.Zoom + 10 If numero <= 400 Then ActiveWindow.Zoom = numero End If End Sub Sub MenosZoom() Dim numero As Integer numero = ActiveWindow.Zoom - 10 If numero >= 10 Then ActiveWindow.Zoom = numero

Prof. Eduardo dvila Albuquerque

Pgina 36/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

End If End Sub

Criando uma barra de ferramentas personalizada Clique em ferramentas, personalizar, barra de ferramentas.

Clique em seguida no comando Nova, d o nome Zoom, OK. Clique na guia comandos, na categoria Macros, e arraste o personalizar boto para dentro da nova barra de ferramentas chamada de Zoom Em seguida, clique em modificar seleo e observe as alteraes que podem ser feitas em seu boto. Pode-se dar um nome, alterar sua imagem e etc... Pode-se ainda atribuir este boto a uma macro!!!. Atribua-o a macro MaisZoom e faa tambm um boto para a macro Menos Zoom. Sua barra de ferramentas deve estar como abaixo.

Utilizando a caixa de ferramenta controle

Esta caixa permite criar botes de controle pertencentes a pasta de trabalho e no ao Excel. O 1 boto ativa/desativa o modo de criao de botes. O 2 boto exibi uma janela com todas as propriedades referente ao objeto selecionado, seja este a planilha ou os botes de controle. A seguir as propriedades mais utilizadas desta janela: Name: Nomeia internamente o objeto. Este nome ser usado na programao. Caption: D um ttulo ao objeto. Este ser o texto que o usurio ir ler em sua tela. AutoSize: Faz com que o tamanho do objeto altere (ou no) de acordo com o Caption.
Prof. Eduardo dvila Albuquerque Pgina 37/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Font: Permite formatar a fonte do Caption. Left: distncia da parte esquerda do objeto da margem esquerda da planilha. Height: a altura do objeto. Locked: a proteo do objeto. Funciona juntamente com o comando proteger do menu ferramentas. TakeFocusOnClick: A clula ativa da planilha ser transferida false (ou no - true) para o objeto clicado. PrintObject: Este objeto ser impresso ou no. Visible: Este objeto est visvel ou no. Enabled: Este objeto esta ativa ou desativado. Top: Distncia da parte superior do objeto margem superior. Width: Largura do objeto. LinkedCell: Para qual clula este objeto retornar resultados. Min/Max: So os valores mnimos e mximos que algum objeto pode representar. SmalChange: Cada clique no objeto representar o aumento de quanto no ao valor Value: o valor deste objeto, podemos considerar como sendo o contedo do objeto. Delay: o tempo que ser considerado como um clique. ListFillRange: um nome de uma rea da planilha que vai ser utilizada como uma lista para o objeto. ColumnCount: quantidade de colunas que possui a listagem. BoundColumn: Qual das colunas ser a coluna de referncia, que fornecer o valor para a linkedCell. O 3 boto exibi os cdigos criados para o objeto selecionado Do 4 ao 11 boto cria-se os objetos para os quais podemos atribuir as propriedades. O ltimo boto exibi uma lista de outros controles que podero ser utilizados em nossa planilha. CAPTULO 8 FAZENDO O EXCEL RECONHECER SUA MACRO COMO SEGURA. O Excel se protege contra as pastas de trabalho que contenham macros, pois podem interferir de forma automtica causando dano a funcionalidade deste software. So chamados de Vrus de Macro, toda macro que causa algum dano ao Excel ou a planilhas dos usurios. Se voc no mudou a configurao de segurana padro clicando no boto correspondente da barra de ferramentas do Visual Basic, todas as vezes que abrir um
Prof. Eduardo dvila Albuquerque Pgina 38/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

pasta de trabalho que contem macro, o Excel exibir uma tela de Mensagem de alerta tipo a seguinte:

A maneira de evitar a exibio da tela de advertncia so duas: A primeira configurando sua proteo no nvel mais baixo, isto no recomendado. A segunda forma adicionando uma assinatura digital ao seu projeto VBA e fazendo esta assinatura ser reconhecida pelo Excel. Criando uma assinatura digital pessoal O CD do Microsoft Office inclui um programa que pode ser usado para criar uma assinatura pessoal. Ao instalar o Office pea para instalar Assinatura Digital para projetos do VBA. Procure em seu Windows Explorer o arquivo SelfCert que executa o programa de assinatura digital, este programa somente ser encontrado se previamente instalado. Adicione uma assinatura ao seu projeto Voc adiciona uma assinatura parte do projeto VBA da sua pasta de trabalho, para isto abra seu arquivo que contm macros, clique na ferramenta que leva ao Visual Basic e d um clique em ferramentas, assinatura digital. Logo aps, ao abrir pela primeira vez o arquivo que contem macros assinadas aparecer uma tela pedindo confirmao, clique ento, na caixa de seleo sempre confiar em macros dessa fonte CAPTULO 9 IF END IF - DO WHILE LOOP Neste captulo vamos estudar duas estruturas de controle de programao: Estruturas de Tomadas de Deciso e Estruturas de Loop. Estruturas de Controle As estruturas de tomas de deciso servem para desviar a programao para os caminhos desejados de acordo com veracidade da condio. Existem vrias estruturas de tomadas de deciso, estudaremos a estrutura de controle denominada If End If. If teste-lgico then

Prof. Eduardo dvila Albuquerque

Pgina 39/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Comando 1 Comando 2 Comando 3 Comando n Else Comando A Comando B Comando C Comando ... End If As linhas sublinhadas so obrigatrias na Estrutura If End If. Elas formam a parte constante desta estrutura. O teste-lgico uma expresso matemtica onde podemos responder apenas Verdadeiro ou Falso. O then antecede os comandos que devero ser executados caso o valor do testelgico seja verdadeiro. O else antecede os comandos que devero ser executados caso o teste-lgico seja falso. O end if marca o fim da estrutura. Observe que o Excel nunca executar todos os comandos contidos no If End If de forma linear. Sempre o Excel ter que saltar alguns comandos, tomado assim a deciso do que ser executado. Caso o teste-lgico seja Verdadeiro executa os comandos iniciais e ao encontrar o else pula-se para o end if. Caso o teste lgico seja falso executa os comandos aps o else at o end if. A estrutura If End If pode ser compactada omitindo o else. Assim caso o testelgico seja falso o Excel procura pelo else, mas como no o encontra vai para o end if. Para os programadores esta estrutura cotidiana. Estruturas de Loop As estruturas de Loop realizam determinados comandos enquanto a resposta para o teste lgico for verdadeiro. Os comandos que devero ser executados repetitivamente sero delimitados no incio por Do While e no fim por Loop. Observe o modelo abaixo: Do While teste-lgico Comando 1 Comando 2 Comando 3 Comando n Loop
Prof. Eduardo dvila Albuquerque Pgina 40/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Estruturas Mistas Podemos utilizar as estruturas IfEnd If ou Do While Loop repetidas vezes de forma independente ou interligadas entre si observe o exemplo estrutural abaixo INCIO A=? B=? C=? If A>B then C=A+B Do While C >= B B = B +1 A= A + B Loop Else A=C+1 C=B If A = C then A=3 C= 1 Do While B > A A=A+1 Loop End If End if FIM Para acompanhar os comandos acima aconselhvel fazer uma tabela de acompanhamento de comandos linha a linha. CAPTULO 10 INCLUSO DE DADOS E EMISSO DE BOLETAS No seu disquete existe um arquivo chamado Arquivo X. Neste arquivo voc encontra vrias planilhas. Acesse a planilha Tela Principal e observe os botes de comando e as macros j criadas neste exerccio.

Prof. Eduardo dvila Albuquerque

Pgina 41/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Comentrio sobre as macros j criadas Executando as rotinas atravs da tecla F8, tente entender as funes de cada linha das macros existente no arquivo X. Somente com a compreenso individual de cada linha podemos entender a funcionalidade da macro. A macro abaixo inclui no banco de dados o Nome do Cliente. Os outros dados do Cliente so inseridos por macros semelhantes. Todas as linhas da macro IncluirNome foram feitas atravs do gravador. Sub IncluirNome() Range("B4").Select Selection.Copy Sheets("BASE DE DADOS").Select Range("A1").Select Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Paste Sheets("TELA PRINCIPAL").Select Application.CutCopyMode = False Range("A2:B2").Select End Sub As linhas, End(xlDown).Select - Selecione a ltima clula no-vazia desta coluna. Neste momento o Excel abaixa a clula at encontrar uma clula vazia, encontrando ele seleciona a primeira anterior a esta. Como j criamos uma macro para impedir os espaos em branco, posso acionar este comando na primeira linha com a certeza que selecionarei a ltima linha de dados. ActiveCell.Offset(1, 0).Range("A1").Select - Esta linha posiciona uma linha abaixo da linha atual. Esta linha de instruo devido ao cone Referncia Relativa. Este cone se encontra na barra de ferramentas Parar Gravao. Este comando, a partir da clula ativa, cria uma espcie de planilha virtual iniciando em (linhas, Colunas) depois clula corrente e pede para selecionar a clula A1 referente a esta planilha virtual. A macro IncluirImprimir inclui a Letra N na coluna correspondente a Impresso, informando ento que a boleta correspondente ainda No foi impressa. --------------------------------------------------------------------------------------Sub Incluir( ) IncluirNome IncluirRua IncluirBairro IncluirCidade IncluirUF
Prof. Eduardo dvila Albuquerque Pgina 42/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

IncluirDTCompra IncluirValor IncluirDTVenc IncluirImprimir End Sub Sem precisar do gravador, criou-se a macro acima para executar as outras macros relativas a incluso dos dados. A macro chamada de Incluir apenas chama execuo outras macros de incluso de dados. --------------------------------------------------------------------------------------Sub PreencherVazios() Sheets("BASE DE DADOS").Select Range("A1").Select Selection.ClearContents Selection.CurrentRegion.Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = "****" Range("A1").Select Selection.Value = "NOME" Selection.End(xlDown).Select Sheets("TELA PRINCIPAL").Select Range("A2:B2").Select End Sub A macro PreencherVazios apenas inseri **** nas clulas vazias da nossa base de dados. Pode acontecer que nenhuma clula esteja vazia, com isto, o comando Selection.SpecialCells(xlCellTypeBlanks).Select emitir uma mensagem de erro. Apagando o contedo de A1 [ Range("A1").Select , Selection.ClearContents ] garantimos que pelo menos A1 estar vazia. Assim a macro executa normalmente e no final devolve para a clula A1 o seu contedo [Selection.Value = "NOME"] --------------------------------------------------------------------------------------Private Sub CommandButton1_Click() botao = MsgBox("Confirma Impresso de Boletas?", vbOKCancel) If botao = vbOK Then 'Imprimir End If

Prof. Eduardo dvila Albuquerque

Pgina 43/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

A linha Private Sub CommandButton1_Click() indica que uma macro privada. S ser executada caso o ocorra um Clique no Boto de Comando. A instruo MsgBox("Confirma Impresso de Boletas?", vbOKCancel) exibi um caixa de mensagem na tela com a pergunta, sendo que esta caixa ir conter o boto OK e Cancelar. A varivel Botao receber a mensagem vbOK quando o usurio clicar em Ok. --------------------------------------------------------------------------------------Private Sub Botaodeinclusao_Click() Incluir PreencherVazios End Sub O boto de incluso chama pela Sub Incluir, que por sua vez, chama as rotinas de incluso de dados. sempre aconselhvel o quebrar uma programao extensa em vrios procedimentos menores e de fcil compreenso. Depois de Executa as funes de incluso de dados a macro Incluir ter sido executada, logo em seguida, a macro PreencherVazios, impedindo que algum campo fique vazio. --------------------------------------------------------------------------------------Sub Imprimir() Dim Celula As String Dim Coluna As Integer Dim Linha As Integer Worksheets("Base de Dados").Select Linha = 2 Coluna = 9 Celula = Cells(Linha, Coluna).Value Do While Celula <> "" If Celula = "N" Then neste espao devemos fazer as instrues de Copiar os dados, ir para a planilha correspondente a boleta a ser impressa, posicionar a clula, Colar e Imprimir e voltar para esta planilha chamada de base de dados. Cells(Linha, Coluna).Value = "S" End If Linha = Linha + 1
Prof. Eduardo dvila Albuquerque Pgina 44/45

Apostila de Excel Avanado e Programado em VBA


Atualizao Abril/2005

Celula = Cells(Linha, Coluna).Value Loop End Sub A macro imprimir uma macro criada sem o gravador. Vamos interpret-la passo a passo em sala de aula. Macros diferentes podem fazer as mesmas funes. Esta macro poderia ser criada com o auxlio do gravador e depois sofrer as alteraes necessrias. ---------------------------------------------------------------------------------------

CONCLUSO Parabns!!! Voc acaba de concluir os estudos sobre Excel Avanado e Programado em VBA. certo que este material no um manual completo de auto-ajuda, mas com toda certeza , uma referncia importante para consultas. Lembre que suas aulas foram totalmente baseadas nesta apostila, o que facilita para voc relembrar os ensinamentos transmitidos. Cuide bem de seu material, daqui em diante ele ser o seu ASSISTENTE. Para completar seu aprendizado, observe as bibliografias abaixo: JACOBSON, R. Excel 2002 Visual Basic for Applications. Traduo de Joaquim Pinheiro Nunes da Silva. Reviso tcnica de Marcelo Rosin Citrangulo. So Paulo: Makron Books, 2002. (Total de 326 pginas) ROMAN, S. Desenvolvendo Macros no Excel. Traduo de Savannah Hartmann. Reviso tcnica de Adilson de Souza Dias. Rio de Jadneiro: Cincia Moderna, 2000. (total de 569 pginas) A BBLIA DO EXCEL Suplemento Literrio/Tcnico da Revista INFO Exame. (202 pginas) WANG, W. Visual Basic 6 para Dummies.Traduo de Ana Beatriz Rodrigues e Priscilla Martins Celeste. Consultor editorial Fernando Barcellos Ximens e Kpmg Consulting. Rio de Janeiro: Campus, 2. ed., 1999. (total de 532 pginas)

Prof. Eduardo dvila Albuquerque

Pgina 45/45