Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sumrio
I trod!"o # cria"o de macros............................................................................................................$ %ra&a"o a!tom'tica de macros......................................................................................................$ (efer) cias a*sol!ta e relati&a........................................................................................................+ ,ssocia do macros a eleme tos -r'ficos.............................................................................................. /erso ali0ar *arra de ferrame tas de acesso r'pido 1Excel 20072.................................................... Cria do me !s perso ali0ados 1Excel 200$2...................................................................................3 ,ssocia do macros a !m *oto de coma do.................................................................................10 I trod!"o # li -!a-em 45,.............................................................................................................12 S!*6roti as e f! "7es.....................................................................................................................12 8! dame tos da 9i -!a-em ..............................................................................................................1$ 4ari'&eis e atri*!i"o de &alores...................................................................................................1$ Tipos de &ari'&eis .........................................................................................................................1: ;eclara"o de &ari'&eis.................................................................................................................1: <peradores.....................................................................................................................................1+ <peradores aritmticos..............................................................................................................1+ <peradores relacio ais..............................................................................................................1+ (oti as de exemplo........................................................................................................................1+ Estr!t!ras de co trole....................................................................................................................1. If T=e Else...............................................................................................................................17 8or > ?ext.................................................................................................................................1@ A=ile6Ae d..............................................................................................................................13
?este pai el poderemos reali0ar as se-!i tes formata"7esF 1. ?ome da MacroF ser' co stit!Gdo por !m co D! to de caracteres C!e ide tificaro a Macro. H i teressa te C!e este ome reflita a s!a f! cio alidade. 2. Tecla de atal=oF composto por !ma com*i a"o de teclas C!e podero ser !tili0adas para exec!tar !ma macro. $. ,rma0e am toF Esta pasta de tra*al=o, ?o&a pasta de tra*al=o o! /asta pessoal de macros, se do C!e cada !ma correspo de a macros de Im*itos difere tes. ,ssim, para C!e a macro fiC!e ati&a sempre C!e o doc!me to esti&er a*erto, de&emos arma0e ar a op"o JEsta pasta de tra*al=oK. :. ?o campo ;escri"o, i trod!0a !m come t'rio # macro > este come t'rio poder' ser importa te para C!e o seDa esC!ecido o se! respecti&o o*Deti&o e f! cio alidade. Co fi-!ra do as op"7es, clica do em <L, i iciaremos a -ra&a"o da macro. M importa te &erificar C!e a *arra de stat!s aparecer' !m o&o *oto, C!e ser&ir' para pa!sar a -ra&a"oF
,o acio armos a -ra&a"o da macro, todas as opera"7es C!e reali0armos sero a!tomaticame te -ra&adas pelo Excel. /ara exec!tar a macro, *asta !tili0ar a tecla de atal=o co fi-!rada 1CT(9 N al-!ma coisa2 o! exec!t'6la pelo pai el de macros, acessG&el em Exi*i"o > Macros > Exi*ir MacrosF
Bma o!tra ma eira *asta te i teressa te associar !ma macro a !m *oto. ;esta forma, possG&el criarmos !m &erdadeiro me ! de op"7es de macros. Estas co fi-!ra"7es sero &istas adia te.
/ara criar o *oto, em JSelecio ar mais !sadosK, selecio e a op"o JMacrosK. Selecio e a macro deseDada e cliC!e em J,dicio arKF
Tpicos em Microsoft Excel 2007 4oc) poder' ai da modificar o dese =o e o texto do *oto. 5asta clicar so*re a macro i serida o pai el direito e clicar em ModificarF
/ara remo&er este *oto criado da *arra de ferrame tas, &oc) de&er' pai el, selecio ar a macro a ser excl!Gda e clicar em J(emo&erKF
acessar o mesmo
/ara criar !ma o&a *arra de ferrame tas, de&emos clicar o *oto J?o&aK. Em se-!ida, de&eremos dar !m ome a ela. /erce*a C!e, aps defi irmos !m ome, ela se comportar' como !ma *arra de ferrame tas ormal do Excel, pode do ser arrastada, exi*ida o! o exi*ida. ,ps criarmos !ma *arra de ferrame tas, de&emos a-ora criar ite s de me ! para ela. /ara isto, *asta acessar a a*a JComa dosK, mostrada a fi-!ra acima. /oderemos adicio ar *ot7es diretame te # *arra de ferrame tas o! criar !m sistema de me !s. /ara adicio ar !m *oto, *asta repetir o mesmo processo exec!tado para atri*!ir !ma macro a !m *oto. /ara adicio ar !m me !, &oc) de&er' acessar a cate-oria J?o&o me !K, clicar o coma do J?o&o me !K e arrast'6lo at s!a *arra de ferrame tas, como mostra a fi-!ra a*aixoF
/osteriorme te, poderemos atri*!ir o&os me !s aos me !s criados 1s!*6me !s2, o&os *ot7es e coma dos, i cl!si&e *ot7es associados a macros. /ara remo&er estes ite s, *asta acessar o pai el de /erso ali0a"o o&ame te 1Exi*ir > 5arra de ferrame tas > /erso ali0ar2, clicar so*re o item e arrast'6lo para o pai el. /ara excl!ir !ma macro, *asta acessar o pai el de macros 1,9T N 8@2, selecio ar a macro deseDada e clicar o *oto Excl!ir.
10
/ara isto, &oc) precisa primeiro =a*ilitar a a*a dese &ol&edor. CliC!e o *oto <ffice, escol=a J<p"7es do ExcelK. ?a cate-oria JMais !sadosK, selecio e a op"o JMostrar -!ia ;ese &ol&edor a faixa de op"7esK. 8eito isto, &' para a a*a ;ese &ol&edor. CliC!e em i serir > Co troles de form!l'rio > 5oto. E to, cliC!e e arraste o po teiro do mo!se, como se esti&esse dese =a do o *oto. ,!tomaticame te o Excel solicitar' C!e &oc) selecio e a macro a ser exec!tada C!a do clicarem este *oto.
M possG&el co fi-!rar al-!mas op"7es de *oto, *asta clicar com o *oto direito do mo!se so*re eleF
11
%ub&rotinas e fun'es
Como &erificamos a primeira a!la, C!a do se -ra&a !ma macro o Excel, este tem !m comportame to em *acP-ro! d C!e reali0a a respecti&a codifica"o para 4is!al 5asic for ,pplicatio s. Este res!ltado *em &isG&el C!a do procedemos # edi"o de !ma macro o editor 45,, por exemplo. /or isso, *asta te i teressa te para o apre di0ado criar !ma macro com o a!xGlio do assiste te com al-! s procedime tos e depois &is!ali0ar o cdi-o criado. Cada macro C!e se cria tem !m comportame to a!tQ omo relati&ame te a o!tras macros impleme tadas, e tem como o*Deti&o exec!tar !m determi ado Emero de i str!"7es C!e respo dam #s exi-) cias do !tili0ador. Cada macro criada d' ori-em a !m procedime to o! roti a. Existem dois tipos de roti asF as s!*6roti as o! roti as 1S!*2 e as f! "7es 1f! ctio s2.
12
Tpicos em Microsoft Excel 2007 ,s S!*6roti as so aC!elas c!Da defi i"o delimitada pelas pala&ras6c=a&e S!* e E d S!*. ,ssim, se reparar todas as macros C!e -ra&a o Excel so deste tipo. (epare ai da como C!e so defi idasF Sub <nome_da_macro> ( ) <corpo_da_macro> End Sub Estas S!*6roti as so desi- adas pelo ome C!e l=e atri*!Gmos e o rece*em parImetros do exterior, t)m como f! "o desempe =ar !m co D! to de tarefas C!e comp7em o se! corpo. < corpo da macro, assim composto por !m co D! to de i str!"7es, se do C!e cada i str!"o difere te ecessita de estar !ma li =a difere te. 8! "7es so roti as c!Da defi i"o come"a com a pala&ra6c=a&e 8! ctio e termi a com as pala&ras E d 8! ctio . Todas as f! "7es C!e !tili0a o Excel so deste tipo de roti a. , s!a defi i"o tem a estr!t!ra se-!i teF Function <Nome da Funo> ( <parametro1>, <parametro2>,...) ... <Nome da Funo> = <Valor / Expresso> ... End Function , f! "o ide tificada pelo ome, pelo Emero e tipo de parImetros rece*idos, e tem como o*Decti&o exec!tar !m co D! to de i str!"7es e prod!0ir !m &alor fi al. Isto , sempre C!e se prete der exec!tar !ma f! "o sa*ido # priori C!e ela prod!0ir' !m &alor. (ecorde6se como exemplo a f! "o S<M,, esta rece*e por parImetro !m co D! to de &alores C!e se prete dem somar, sa*e6se C!e o res!ltado da aplica"o dessa f! "o ao co D! to de &alores ser' o respecti&o somatrio. /ara defi ir o &alor prod!0ido por !ma f! "o *asta o se! i terior, atri*!ir ao ome da f! "o !m determi ado &alor o! expresso.
Fundamentos da Linguagem
(ariveis e atribuio de valores
4ari'&eis so repositrios de dados a memria, C!e podem ser acessados atra&s de !m apelido. R!a do se prete de atri*!ir &alores a &ari'&eis de&emos i dicar o ome da &ari'&el 1C!e !ma espcie de apelido, o! refer) cia # s!a posi"o a memria2, o operador STS e o &alor C!e se prete de C!e a &ari'&el arma0e e. Si taxeF <Nome_Varivel> = <Valor> So Jos dos Campos, 2011. 1$
Tpicos em Microsoft Excel 2007 Como o ome da &ari'&el represe ta, de certa forma, o co teEdo da mesma, sempre C!e me cio armos o ome da &ari'&el o se! co teEdo C!e ser' co siderado. /or exemplo, a expressoF Total = Parcela_1 + Parcela_2 /arcelaU1 represe ta o primeiro &alor i trod!0ido e /arcelaU2 represe ta o se-! do &alor, o se trata de adicio ar o ome de d!as &ari'&eis, mas adicio ar os co teEdos C!e elas arma0e am.
)ipos de variveis
< tipo de &ari'&el est' associado ao -) ero de dado C!e esta tem, por =iptese, de arma0e ar. Temos os se-!i tes tipos de &ari'&eisF Nome I te-er 9o Si -le ;o!*le C!rre cV Stri 5oolea ;ate <*Dect 4aria t Tamanho 2 *Vtes : *Vtes : *Vtes @ *Vtes @ *Vtes 1 *Vte por caractere 2 *Vtes @ *Vtes : *Vtes 1. *Vtes N 1 *Vte para cada caractere Inter alo 6$27.@ a $27.7 62.1:7.:@$..:@ a 2.1:7.:@$.:.7 6$,: x 10$@ a $,: x 10$@ 1,7 x 10$0@ a 1,7 x 10$0@ 6322$$720$.@+:,+@0@ a 322$$720$.@+:,+@07 0 a aproximadame te .+.+00 4erdadeiro o! 8also 01W01W100 a $1W12W3333 R!alC!er refer) cia a o*Deto 4'lido para C!alC!er tipo de dados.
*eclarao de variveis
, declara"o de &ari'&eis em 45, tem a se-!i te formaF Dim nome_variavel As tipo < deF ;imF /ala&ra c=a&e C!e i dica !ma declara"o de &ari'&eis 1a*re&iat!ra de dime so2 ?omeU&aria&elF ome da &ari'&el a !tili0ar para refere ciar a posi"o a memria oc!pada ,sF pala&ra c=a&e !tili0ada para separar o ome da &ari'&el do tipo de dados TipoF tipo de dados atri*!Gdo # &ari'&el
1:
Operadores relacionais
<peradores relacio ais fa0em compara"7es, isto , &erificam a rela"o de ma- it!de e i-!aldade e tre dois &alores. So seis os operadores relacio aisF <perador [ [T \ \T T \[ Si- ificado maior maior o! i-!al me or me or o! i-!al i-!al difere te
Rotinas de exemplo
4amos reali0ar a co str!"o de al-!mas f! "7es e s!*6roti asF Criar !ma f! "o C!e rece*e !m &alor em -ra!s 8a=re =eit e o co &erte em -ra!s Celsi!s. Function celsius(f As Integer) celsius = ((f - 32) * 5 / 9) End Function
1+
Tpicos em Microsoft Excel 2007 /ara !sar esta f! "o, *asta selecio ar !ma cl!la da pla il=a ati&a e di-itar T celsi!s1:+2, por exemplo. Criar !ma roti a C!e rece*a do !s!ario determi ado &alor, calc!le !ma taxa de desco to de +] e exi*a o res!ltadoF Sub Calcula_Desconto() Const Taxa_Desc As Single = 0.05 Dim Desconto As Double Desconto = InputBox (Introduza valor das Compras)* Taxa_Desc MsgBox O desconto de : End Sub ,s s!*roti as podem ser !sadas atra&s das mesmas formas &istas para exec!tar macros criadas com o -ra&ador a!tom'tico. & Desconto
Estruturas de controle
Estr!t!ras de co trole so meca ismos de pro-rama"o C!e permitem co trolar o fl!xo de processame to de !ma roti a. (es!midame te, o 45, poss!i as se-!i tes estr!t!rasF
!strutura
I# $Then $ !lse %or Ne&t 'hile$'end "o (oo) Select $ Case %or !ach Ne&t
"escrio
Testa !ma co di"o e exec!ta !m determi ado co D! to de i str!"7es co soa te o res!ltado dessa a&alia"o Exec!ta !ma determi ada tarefa !m determi ado Emero de &e0es. Exec!ta !ma determi ada tarefa e C!a to C!e !ma determi ada co di"o perma e"a &erdadeira, com o &alor Tr!e. Exec!ta !ma determi ada tarefa e C!a to C!e a a&alia"o de !ma co di"o perma e"a Tr!e o! e to at C!e seDa Tr!e. Selecio a !m dos se-me tos de cdi-o a processar media te a a&alia"o co sec!ti&a de co di"7es. (eali0a !ma determi ada tarefa repetiti&a em cada o*Deto de !ma cole"o o! em cada item de !m &etor.
1.
If T en !lse
/odemos ima-i ar o I8 como a f! "o SE do ExcelF TI81 \co di"o[, \se co di"o &erdadeira[, \se co di"o falsa[ 2 , f! "o SE ti =a o se-!i te comportame toF 1. ,&alia a co di"o, C!e de&er' ser !ma expresso *oolea a colocada como primeiro parImetro^ 2. Se a co di"o for &erdadeira, e to 1t=e 2 reali0a as opera"7es colocadas o se-! do parImetro^ $. Caso co tr'rio 1else2 reali0a as opera"7es C!e formam o terceiro parImetro , estr!t!ra If do 45, tem o mesmo tipo de f! cio ame to, o C!e difere a si taxe.F If <Condio> Then <se condio verdadeira> [ Else <se condio falsa> ] End If , pala&ra Else opcio al !ma a&alia"o If6T=e 6Else, se do C!e o caso de ser omitida, a a&alia"o e-ati&a da co di"o implica !ma saGda a!tom'tica da I str!"o If. Elseif Em certos casos, poder' =a&er mais de !m critrio a ser a&aliado. ;esta forma, teremos C!e acresce tar !m o&o co trole If i ter o, cria do al-o C!e c=amamos de Ifs a i =ados. /or exemplo, co sidere a se-!i te classifica"o =ipotticaF
*rau
Me os C!e $ E tre $ e + E tre . e @ Maior C!e @ ?e =!m 5aixo Mdio ,lto
+isco
17
Tpicos em Microsoft Excel 2007 Sub classifica() Dim grau As Integer grau = Application.InputBox("Digite um valor numrico", "Valor", , , , , , 1) If (grau < 3) Then MsgBox "Risco inexistente" ElseIf (grau <= 5) Then MsgBox "Risco baixo" ElseIf (grau <= 8) Then MsgBox "Risco mdio" Else MsgBox "Risco alto" End If End Sub
< ar-!me to do passo 1step2 pode ser e-ati&o o! positi&o, o C!e determi a a dire"o do loop 1cresce te o! decresce te2. !&em)lo de a)licao /rete de6se criar !ma roti a C!e, rece*e do a *ase e a pot) cia, calc!le o &alor desta opera"o de pote cia"o. Sub calcula_potencia() Dim Dim Dim Dim base As Integer potencia As Integer resultado As Integer contador As Integer
1@
Tpicos em Microsoft Excel 2007 base = InputBox("Digite a base da potencia: ") potencia = InputBox("Digite a potencia: ") resultado = 1 For contador = 1 To potencia Step 1 resultado = resultado * base Next MsgBox resultado: & resultado End Sub
% ile&%end
, estr!t!ra A=ile6Ae d tem !m f! cio ame to similar ao 8or6?ext. (eali0a !m loopi - !m determi ado Emero de &e0es, at C!e !ma determi ada co di"o seDa falsa. /orm, !m -ra de difere cial do la"o A=ile C!e, depe de do da ossa impleme ta"o, ele pode ficar exec!ta do determi adas i str!"7es !m Emero o determi ado de &e0es. Si taxe While <Condio> <Instrues a realizar em cada iterao> Wend !&em)lo de a)licao 4amos fa0er !m simples co tador para ir de 1 at 10F Sub testa_while() Dim contador As Integer contador = 1 While contador < 10 MsgBox "Valor contador: " & contador contador = contador + 1 Wend End Sub
13