Você está na página 1de 15

USO DE MACROS NO EXCEL 1.

Introduo Existem situaes onde no conseguimos resolver um problema proposto, simplesmente utilizando os comandos e frmulas do Excel. Nessas situaes temos que fazer o uso de recursos como Macros e rogramao. ! linguagem de programao do Excel " o #$! % #isual $asic for !pplications. & #$! " a linguagem de programao para todos os aplicativos do Microsoft &ffice' (ord, Excel, !ccess e o)er oint. #eremos a seguir o que " uma Macro, para que serve, quando devemos usar Macros, como criar e alterar Macros. Em seguida aprenderemos os fundamentos b*sicos da linguagem #$!. #eremos os conceitos tericos da linguagem #$!, exemplos de aplicao do #$! para a soluo de problemas pr*ticos, os quais no poderiam ser solucionados sem o uso de programao. O que so Macros? +aso voc, execute uma tarefa v*rias vezes no Microsoft Excel, " poss-vel automatiz*%la com uma macro. .ma macro " uma seq/,ncia de comandos e funes armazenados em um mdulo do #isual $asic for !pplications % #$! e pode ser executada sempre que voc, precisar executar a tarefa. 0uando voc, grava uma macro, o Excel armazena informaes sobre cada etapa realizada 1 medida que voc, executa uma seq/,ncia de comandos. Em seguida, voc, executa a macro para repetir, ou 2reproduzir2, os comandos. or exemplo, vamos supor que, seguidamente, voc, precisa formatar uma c"lula com Negrito, cor de fonte #ermel3a, 4t*lico, 5onte #erdana de 6aman3o 78 com quebra autom*tica de lin3a. !o inv"s de ter que executar todos os comandos de formatao em cada c"lula, voc, pode criar uma Macro que aplica todos os comandos de formatao. !ps criada a Macro, cada vez que voc, tiver que aplicar o con9unto de comandos de formatao, basta executar a Macro, o que normalmente " feito atrav"s da associao de uma combinao de teclas com a Macro, como por exemplo +trl:;. No nosso exemplo, cada vez que voc, quiser formatar uma c"lula com os formatos descritos, basta clicar na c"lula e pressionar +trl:;. $em mais f*cil do que aplicar cada comando individualmente. Voc !ode "ra#ar u$a $acro !ara rea%&'ar u$a tare(a e$ u$a eta!a !ntes de gravar uma macro, plane9e as etapas e os comandos que voc, dese9a que a macro execute. <e cometer um erro durante a gravao da macro, as correes feitas tamb"m so gravadas. !o gravar macros, o #$! armazena cada macro em um novo mdulo anexado a uma pasta de trabal3o. or exemplo, se voc, insere com freq/,ncia seq/,ncias de caracteres de texto extensas nas c"lulas, voc, pode gravar uma macro para formatar essas c"lulas de maneira que o texto retorne automaticamente. <elecione a c"lula em que dese9a inserir o retorno autom*tico de texto e inicie a gravao. +lique em +"lulas no menu 5ormatar, clique na

guia !lin3amento, marque a caixa de seleo =etorno autom*tico de texto, clique em &> e, em seguida, clique em arar gravao . Co$o )ornar u$a $acro (*c&% de ser e+ecutada #oc, pode executar uma macro escol3endo%a de uma lista na caixa de di*logo Macro. ara que uma macro se9a executada sempre que voc, clicar em um boto espec-fico ou pressionar determinada combinao de teclas, voc, pode atribuir a macro a um boto da barra de ferramentas, um atal3o no teclado ou um ob9eto gr*fico em uma planil3a. Co$o E+&,&r e a%terar $acros ?epois de gravar uma macro, voc, poder* exibir o cdigo da macro com o Editor do #$! para corrigir erros ou alterar a funo da macro. & Editor do #$! " um programa criado para facilitar a escrita e a edio de cdigo de macro para principiantes e fornece bastante !9uda on%line. #oc, no precisa aprender a programar ou a usar a linguagem do #isual $asic para fazer alteraes simples nas suas macros. Na 5igura a seguir temos um exemplo de cdigo associado com uma Macro. Esse " um exemplo de cdigo #$!'

Co$o "erenc&ar $acros co$ o Ed&tor do V-A #oc, pode editar macros, copiar macros de um mdulo para outro, copiar macros entre pastas de trabal3o diferentes, renomear os mdulos que armazenam as macros ou renomear as macros. or exemplo, se voc, quiser que a macro de retorno autom*tico de texto, do exemplo anterior, tamb"m deixe o texto em negrito, voc, poder* gravar outra macro para aplicar negrito a uma c"lula e copiar as instrues dessa macro para a macro de retorno autom*tico de texto. Se.urana da $acro/ & Microsoft Excel fornece proteo contra v-rus que podem ser transmitidos atrav"s das macros. <e voc, compartil3a macros com outros usu*rios, voc, pode certific*%las com uma assinatura digital de forma que os outros usu*rios possam

verificar que as macros so de origem confi*vel. <empre que voc, abrir uma pasta de trabal3o que conten3a macros, poder* verificar a origem das macros antes de ativ*%las. 0ro.ra$ao no E+ce% 1 A %&n.ua.e$ V-A !s Macros so uma excelente soluo quando queremos automatizar uma tarefa que " realizada atrav"s de uma s"rie de cliques de mouse ou digitaes no teclado. or"m existem situaes mais complexas, que envolvem c*lculos ou uma lgica mais apurada, onde no " poss-vel encontrar a soluo do problema, simplesmente usando os comandos ou frmulas prontas do Excel. Nessas situaes temos que fazer uso de programao. .m programa @ou mdulo como " c3amado no ExcelA " uma seq/,ncia de comandos #$!, onde cada comando executa um passo espec-fico, necess*rio 1 resoluo do problema. Nota/ ara um mel3or aproveitamento e entendimento do #$! " importante que o leitor 9* ten3a uma noo b*sica de ;gica de rogramao. #oc, encontra um excelente curso de ;gica de rogramao no seguinte endereo' ))).)ebaula.com.br . & curso " gratuito, " necess*rio apenas fazer um cadastro no site, cadastro esse que tamb"m " gratuito. or exemplo, vamos supor que voc, precise fazer a verificao do + 5 que " digitado em uma c"lula. & c*lculo do ?# do + 5, o qual " de dom-nio pBblico, envolve uma s"rie de operaes aritm"ticas. ara implementar uma funo que faz a verificao do ?# do + 5, voc, ter* que fazer uso de programao. 2. O que so Macros? +onforme descrito anteriormente, uma macro " uma seq/,ncia de comandos @cliques de mouse ou toques de tecladoA que so gravados em um Mdulo #$! e podem ser executados, sempre que necess*rio. ! grande vantagem de gravarmos uma seq/,ncia de comandos " que poderemos utiliz*%la sempre que necess*rio. ara isso basta executar a macro na qual foi gravada a seq/,ncia de comandos. !s Macros so uma excelente opo para automatizar tarefas repetitivas. +om o uso de Macros temos um gan3o de produtividade consider*vel, ao evitar que ten3amos que executar manualmente, os diversos passos de uma tarefa, passos estes que podem ser automatizados atrav"s do uso de uma macro. Existem duas maneiras distintas para a criao de uma macro'

0ode$os usar o .ra#ador de Macros/ Nesse caso o Excel grava cada uma das aes que faro parte da Macro e transforma essas aes nos comandos #$! equivalentes. 0uando a macro for executada, os comandos #$! " que sero efetivamente executados. +ada comando #$! corresponde a uma ao efetiva da macro. Cr&ar a Macro usando V-A/ ! partir do momento em que voc, domina a linguagem #$!, poder* criar a macro digitando os comandos #$! necess*rios. 4sso " feito usando o Editor de #$!.

Me%3or do que de(&n&4es 5 a !r*t&ca66 Mel3or do que uma s"rie de definies " ver uma Macro em ao. #amos a um exemplo simples, onde criaremos uma Macro. Em seguida vamos execut*%la . E+e$!%o 1/ +riar uma macro usando o Cravador de Macros. ! macro dever* formatar a c"lula atual com Negrito, cor de fonte #ermel3a, com fundo cinza. Cravar a macro com o nome de 5ormata#erm+inza. 7. !bra o Excel. D. !bra a lanil3a ExercicioE7.xls. 8. +lique na c"lula !F. F. !gora vamos iniciar a gravao da Macro. G. <elecione o comando 5erramentas %H Macro %H Cravar nova macro. I. <er* exibida a 9anela Cravar Macro. J. No campo Nome da macro digite' 5ormata#erm+inza. K. No campo 6ecla de atal3o digite ;. &bserve que o Excel troca para +trl:<3ift:;. 4sso acontece porque a combinao +trl:; 9* deve estar associada com algum comando do Excel. +om isso estamos associando a combinao +trl:<3ift:; com a macro 5ormata#erm+inza, ou se9a, cada vez que quisermos executar essa macro basta pressionar +trl:<3ift:;. L. & campo descrio " simplesmente uma descrio da funcionalidade da macro. ?igite o texto indicado na figura abaixo'

De(&n&o do no$e e da tec%a de ata%3o da Macro. 7E. +lique em &>. ! gravao da Macro ser* iniciada. 6odos os comandos que voc, executar, durante a gravao da Macro, faro parte da Macro.

77. .ma nova barra @ A " exibida na planil3a do Excel. Essa barra " utilizada para parar a gravao da Macro. !gora devemos escol3er os comandos que faro parte da macro. !ps ter executado os comandos que faro parte da macro, basta clicar no boto @ A para encerrar a gravao da Macro. A para aplicar Negrito. A selecione #ermel3o. A selecione +inza.

7D. +lique no boto @

78. Na lista de +ores da fonte @ 7F. Na lista de +ores de fundo @ 7G. +lique no boto @

A para encerrar a gravao da Macro.

7I. !gora a macro 5ormata#erm+inza foi criada e podemos utiliz*%la sempre que necess*rio. 0ara e+ecutar a $acro 7or$ataVer$C&n'a (aa o se.u&nte/ 7. +lique na +"lula $J. D. ressione +trl:<3ift:;. 8. ! macro 5ormata#erm+inza " executada e as formataes definidas pela macro @Negrito, fonte #ermel3a e fundo +inzaA so automaticamente aplicadas na +"lula $J. #e9a que com um simples comando de teclado, executo uma s"rie de comandos @nesse exemplo' tr,s comandos de formataoA. Esse exemplo nos d* uma pequena id"ia do poder e facilidade do uso das macros. F. 6amb"m " poss-vel executar a macro usando o comando 5erramentas %H Macro %H Macros. G. +lique na c"lula $G. I. <elecione o comando 5erramentas %H Macro %H Macros. J. <er* exibida a 9anela Macro, onde so listadas todas as macros existentes na pasta de trabal3o atual @no arquivo carregado no ExcelA, conforme indicado na figura a seguir'

A 8ane%a Macro. K. +lique na Macro 5ormata#erm+inza para selecion*%la. L. +lique no boto Executar. 7E. ! Macro ser* executada e as respectivas formataes sero aplicadas 1 c"lula $G. 77. ! sua planil3a deve estar conforme indicado na figura abaixo'

7or$ata4es a!%&cadas co$ a $acro 7or$ataVer$C&n'a. 9. Con3ecendo do que 5 (e&ta u$a Macro

No item anterior podemos ver uma macro em ao. +riamos uma macro c3amada 5ormata#erm+inza. Essa macro " composta por tr,s comandos de formatao. +ada vez que a macro " executada, os tr,s comandos de formatao so novamente executados e aplicados 1 c"lula onde est* o cursor. !t" aqui tudo bem. Nen3uma novidade. ! pergunta que pode surgir "' Co$o 5 que o E+ce% (a' &sso? &u de outra forma'

Do que 5 (e&ta u$a $acro? +onforme veremos neste item, uma macro " gravada no Excel como uma seq/,ncia de comandos #$!. or exemplo, ao clicarmos no boto @ A, para a aplicao de negrito, o Excel gera um comando #$! que faz a formatao em negrito. Neste item aprenderemos a acessar o cdigo #$! gerado pelo Excel @embora ainda no se9amos capazes de entender esse cdigoA. ara acessar os comandos #$! associados com uma macro, siga os seguintes passos' 7. #oc, deve estar com a planil3a Exerc-cio E7.xls aberta. <e no estiver, abra%a. D. <elecione o comando 5erramentas %H Macro %H Macros. 8. <er* exibida a 9anela Macro. F. +lique na macro 5ormata#erm+inza para selecion*%la. G. +lique no boto Editar. I. & Editor do #$! ser* carregado e sero exibidas as seguintes lin3as de cdigo'
Sub FormataVermCinza() ' ' FormataVermCinza Macro ' Macro que faz a formatao em fonte Vermelha, Negrito e ' fundo Cinza ' ' !talho do teclado" Ctrl#Shift#$ ' Selection Font %old & 'rue Selection Font Color(nde) & * +ith Selection (nterior Color(nde) & ,.attern & )lSolid /nd +ith /nd Sub

Esses so os comandos #$! @que por enquanto no entendemos o que significamA que formam a macro 5ormata#erm+inza. !penas para adiantar um pouco o assunto, a seguir ser* descrito o que faz cada um dos principais comandos dessa Macro' Se%ect&on.7ont.-o%d : )rue Esse comando aplica a formatao em Negrito para a c"lula onde est* o cursor @ou no con9unto de c"lulas selecionadasA, quando a macro " executada. Se%ect&on.7ont.Co%orInde+ : 9 Esse comando aplica cor de fonte #ermel3a para a c"lula onde est* o cursor @ou no con9unto de c"lulas selecionadasA, quando a macro " executada.

;&t3 Se%ect&on.Inter&or .Co%orInde+ : 1< .0attern : +%So%&d End ;&t3 Esses comandos aplicam a cor de fundo cinza, na c"lula onde est* o cursor @ou no con9unto de c"lulas selecionadasA, quando a macro " executada. Esses so comandos da linguagem #$!. +om o uso do #$! temos acesso a todos os comandos e funes do Microsoft Excel. 6udo o que voc, faz usando o teclado e o mouse, tamb"m " poss-vel de ser feito com o uso do #$!, por"m de uma maneira automatizada. & uso de macros " especialmente indicado naquelas situaes em que temos um con9unto de comandos que precisam ser executados, repetidamente, em diferentes situaes. Nesses casos " muito mais pr*tico criar uma macro composta pelo con9unto de comandos e, cada vez que os comandos precisarem ser executados, executar a macro. Na figura abaixo temos uma viso do Editor do #isual $asic.

O Ed&tor de V-A J. <elecione o comando !rquivo %H 5ec3ar e #oltar para o Microsoft Excel. K. #oc, estar* de volta 1 planil3a Exerc-cio E7.xls.

L. <alve e fec3e a planil3a. =. O!era4es co$ Macros Neste item aprenderemos a renomear, excluir e fazer outras alteraes em macros. 6amb"m aprenderemos a alterar outras opes associadas com a Macro, tal como o comando de teclado para executar a macro. Existem algumas operaes que podem ser feitas com uma macro, aps a sua criao. ! mais bvia @e o motivo pelo qual uma macro " criadaA " para executar a macro. !l"m da execuo " poss-vel executar outras operaes com uma macro, conforme descrito a seguir' ara renomear uma macro siga os seguintes passos' 7. !bra o arquivo onde est* a macro a ser renomeada. D. <elecione o comando 5erramentas %H Macro %H Macros. 8. <er* exibida a 9anela Macro. F. +lique na macro a ser renomeada para selecion*%la. G. +lique no boto Editar. I. <er* aberto o editor do #$!. & nome da macro vem logo aps o comando <ub da primeira lin3a, conforme destacado na figura abaixo'

Reno$eando u$a Macro.

J. ara renomear a macro basta alterar o nome aps o comando <ub e depois clicar no boto @ A para salvar as alteraes.

K. Em seguida " s fec3ar o Editor de #$!. 0ara e+c%u&r u$a $acro s&.a os se.u&ntes !assos/ 7. !bra o arquivo onde est* a macro a ser exclu-da. D. <elecione o comando 5erramentas %H Macro %H Macros. 8. <er* exibida a 9anela Macro. F. +lique na macro a ser exclu-da para selecion*%la. G. +lique no boto Excluir. I. & Excel emite um aviso solicitando que voc, confirme a excluso, conforme indicado na figura abaixo'

Con(&r$ando a e+c%uso da $acro. J. +lique em <im para confirmar a excluso ou em No para cancelar a excluso da macro. 0ara a%terar a tec%a de ata%3o e o co$ent*r&o assoc&ado co$ u$a $acro> s&.a os se.u&ntes !assos/ 7. !bra o arquivo onde est* a macro a ser alterada. D. <elecione o comando 5erramentas %H Macro %H Macros. 8. <er* exibida a 9anela Macro. F. +lique na macro a ser alterada para selecion*%la. G. +lique no boto &pes... I. <er* exibida a 9anela &pes de Macro, onde voc, pode alterar a tecla de atal3o e o coment*rio associado com a macro, conforme indicado na figura a seguir'

Con(&r$ando a e+c%uso da $acro. J. 5aa as alteraes dese9adas e clique em &>. <. Assoc&ando ,ot4es co$ $acros Neste item criaremos mais uma macro de exemplo. !l"m da criao da macro aprenderemos a criar um novo boto, na $arra de 5erramentas e a associar esse boto com a macro. ?essa forma toda vez que precisarmos executar a macro, bastar* clicar no boto associado com a macro. E+e$!%o 2/ +riar uma macro usando o Cravador de Macros. ! macro dever* formatar as c"lulas selecionadas com formato +ont*bil, com duas casas decimais, cor de fonte #ermel3a e 4t*lico. Cravar a macro com o nome de 7or$ataCont*,&% . +riar um boto de comando na $arra de 5erramentas padro e associar esse boto com a macro 5ormata+ont*bil. 7. !bra o Excel. D. !bra a lanil3a Exerc-cioED.xls. 8. +lique na c"lula 5D. F. !gora vamos iniciar a gravao da Macro. G. <elecione o comando 7erra$entas 1? Macro 1? "ra#ar no#a $acro . I. <er* exibida a 9anela Cravar Macro. J. No campo Nome da macro digite' 5ormata+ont*bil. K. Na lista !rmazenar macro em, selecione a opo Esta !asta de tra,a%3o . L. & campo ?escrio " simplesmente uma descrio da funcionalidade da macro. ?igite o texto indicado na figura a seguir'

De(&n&o do no$e e da descr&o da $acro 7or$ataCont*,&%. 7E. +lique em &>. ! gravao da Macro ser* iniciada. 6odos os comandos que voc, executar, durante a gravao da Macro, faro parte da Macro.

77. .ma nova barra @ A " exibida na planil3a do Excel. Essa barra " utilizada para parar a gravao da Macro. !gora devemos escol3er os comandos que faro parte da macro. !ps ter executado os comandos que faro parte da macro, basta clicar no boto @ A para encerrar a gravao da Macro. AA para aplicar 4t*lico. A selecione #ermel3o.

7D. +lique no boto @

78. Na lista de +ores da fonte @

7F. <elecione o comando 5ormatar %H +"lulas. +lique na opo +ont*bil e selecione duas casas decimais, conforme indicado na figura a seguir'

7or$atao Cont*,&% co$ duas casas dec&$a&s. 7G. +lique em &>. 7I. +lique no boto @ A para encerrar a gravao da Macro.

7J. !gora a macro 5ormata+ont*bil foi criada e podemos utiliz*%la sempre que necess*rio. !gora vamos aprender como associar um boto com a macro 5ormata+ont*bil. 0ara assoc&ar u$ ,oto co$ u$a $acro s&.a os se.u&ntes !assos/ 7. +lique com o boto direito do mouse em uma das barras de ferramentas do Excel. or exemplo, clique com o boto direito do mouse na *rea cinza, ao lado do boto @ D. No menu que " exibido clique na opo ersonalizar. 8. <er* exibida a 9anela ersonalizar. F. +lique na guia +omandos. G. Na lista de +ategorias que " exibida d, um clique na opo Macros conforme indicado na figura a seguir' A.

A o!o Macros da .u&a Co$andos. I. +lique no boto @ A e arraste%o para a barra de ferramentas padro, ao lado esquerdo do boto @ A, conforme indicado na figura abaixo'

Arrastando o ,oto que ser* assoc&ado co$ a Macro. J. ! 9anela ersonalizar ser* fec3ada e o boto @ ferramentas padro. K. ?, um clique no boto @ A. A ser* adicionado 1 barra de

L. <er* exibida a 9anela !tribuir macros. Nessa 9anela voc, pode selecionar a macro que ser* associada com o boto, isto ", a macro que ser* executada quando voc, clicar no boto. 7E. +lique na macro 5ormata+ont*bil para selecion*%la, conforme indicado na figura a seguir. 77. +lique em &>. 7D. ronto, agora o boto @ A est* associado com a macro 5ormata+ont*bil.

Assoc&ando a $acro 7or$ataCont*,&% co$ o ,oto. 78. #amos testar se o boto est* funcionando. 7F. +lique na c"lula 57E. 7G. +lique no boto @ A.

7I. &bserve que a macro " executada e as respectivas formataes so aplicadas 1 c"lula 57E. 4sso comprova que o boto @ 7J. <alve e fec3e a planil3a. A est* associado 1 macro 5ormata+ont*bil.