Documente Academic
Documente Profesional
Documente Cultură
Obiectele Microsoft Excel: Obiectul Application Obiectul Workbook
Obiectele Microsoft Excel: Obiectul Application Obiectul Workbook
"e#erine de tip A$ sau nume de domeniu %tili&area indicilor de linii 'i coloane %tili&area propriet(ii O##set %tili&area propriet(ilor Current"e)ion 'i %sed"e)ion *arcur)erea unui domeniu de celule
%tili&area instruciunii For +ach,-e.t %tili&area instruciunii Do,/oop %tili&area propriet(ii Address Evenimentele din Excel 97
+venimentele obiectului Workbook +venimentele obiectului Application %tili&area modulelor clas( cu evenimente Visual Basic suport un set de obiecte care corespund direct elementelor din Microsoft Excel, cele mai multe identificabile dup denumirea uzual din mediul Excel. Astfel, obiectul Workbook reprezint un caiet, obiectul Worksheet reprezint o foaie de calcul iar obiectul Ran e reprezint un domeniu de celule dintr!o foaie de calcul. "iecare element din Microsoft Excel # caiet, foaie, dia ram, celul etc. # poate fi reprezentat printr!un obiect $n Visual Basic. %rin scrierea unor proceduri, care controleaz aceste obiecte, se pot automatiza opera&iile efectuate $n Excel. %entru a 'edea modelul de obiecte pentru Microsoft Excel, se 'a cuta (Microsoft Excel )b*ects( $n +elp. %entru a 'edea fi,ierele de +elp necesare se 'a urma calea- Visual Basic Editor Help Contents and Index (Contents tab) Microsoft Excel Visual Basic Reference Shortcut to Microsoft Excel Visual Basic Reference. "i,ierele sunt disponibile dac la instalarea aplica&iei s!a marcat boxa Online Help for Visual Basic.
.intre cele peste /00 de obiecte care alctuiesc ierarhia de obiecte Excel, 'om prezenta $n acest capitol doar pe cele mai importante. %rezentarea este simplificat ,i din cauz c prezentarea obiectelor Word a conturat problematica modelelor de obiecte )ffice ,i a fixat anumite re uli de operare cu aceste obiecte.
O iectul !pplication
1ele mai multe propriet&i ale obiectului !pplication Excel controleaz atributele de 'izualizare ale ferestrei aplica&iei sau comporatrea lobal a aplica&iei. .e exemplu, 'aloarea propriet&ii "ispla#$or%ulaBar este 2rue dac bara de formule este 'izibil, iar 'aloarea propriet&ii Screen&pdatin' este "alse dac actualizarea ecranului este inhibat. 3n plus, propriet&ile obiectului !pplication ofer acces la obiectele situate mai *os $n ierarhie de obiecte 4constituie ceea ce s!a numit accesori5. Astfel, proprietatea (indo)s d acces la colec&ia (indo)s 4reprezent6nd toate ferestrele deschise $n aplica&ie5, proprietatea (or* oo*s d colec&ia (or* oo*s a tutror caietelor deschise etc. .in aceast cate orie enumermo o o o o o o o
Charts, colec&ia tuturor foilor de tip chart, "ialo's, colec&ia tuturor dialo urilor predefinite $n mediul Excel, +a%es, colec&ia tutror numelor create $n caietul acti', Recent$iles, colec&ia fi,ierelor utilizate recent 4dup lista din meniul "ile5, Sheets, colec&ia tutror foilor deschise $n caietul acti', (indo)s, (or* oo*s, (or*sheets, colec&ia tuturor foilor de calcul din caietul acti'.
Returnarea unui obiect particular din colec&ie se efectueaz dup procedurile enerale, explicate $n capitolele introducti'e. 3n cate oria accesorilor mai pot fi $ncadrate propriet&ile care returneaz un obiect Ran'e- !cti,eCell, Cells, Ro)s, Colu%ns, Selection 4dac este selectat un domeniu de celule5. %ropriet&ile !cti,e(or* oo*- !cti,eSheet- !cti,eChart ,i !cti,e(indo) returneaz obiectele care reprezint elementele acti'e corespunztoare din Excel. Anumite metode ,i propriet&i care se aplic obiectului !pplication se aplic ,i unor obiecte situate mai *os $n ierarhie. 7tilizarea acestor propriet&i ,i metode la ni'elul !pplication 'or modifica toate caietele, foile deschise. .e exemplu, metoda Calculate aplicat la ni'elul !pplication produce recalcularea tuturor foilor, din toate caietele, pe c6nd utilizat la ni'el de (or* oo* sau de (or*sheet produce recalcularea doar a foilor locale.
Este de remarcat c obiectul (or* oo* returnat de metod se refer la caietul deschis, care rm6ne acti'. Asupra utilizrii utilizrii sau nu a cii pe care se se,te fi,ierul se 'or reciti cele spuse la deschiderea documentelor Word. Exist dou foldere remarcabile pentru care se poate ob&ine $n mod automat caleafolderul cu fi,ierele Excel executabile ,i folderul :ibrar; 4creat automat la instalarea aplica&iei5. )b&inerea acestor ci se realizeaz prin propriet&ile .ath ,i /i rar#.ath ale obiectului !pplication5. Astfel
+7+*ath 2 Application3*ath 8 Application3*ath eparator /ib*ath 2 Application3/ibrar1*ath 8 Application3*ath eparator
returneaz, respecti', calea ctre fi,ierele executabile Excel ,i calea ctre fi,ierele de bibliotec. ) cale returnat se termin cu separatorul adec'at sistemului pe care se execut aplica&ia, astfel $nc6t codul este independent de platform Windo8s sau Macintosh5. 9nstruc&iunile
#-ame 2 /ib*ath 8 50ook$3.ls5 et m10ook 2 Workbooks3Open(Filename42#-ame)
considerate $mpreun cu atribuirea 'ariabilei :ib%ath de mai sus, realizeaz deschiderea fi,ierului Book/.xls din folderul :ibrar;. <e poate lsa utilizatorului op&iunea de a decide aupra numelui fi,ierului care se deschide. Acest lucru se poate realiza prin metoda 0etOpen$ilena%e a obiectului !pplication.
Metoda afi,eaz cutia de dialo standard Open- dar, $n loc s deschid fi,ierul selectat, returneaz un ,ir cu numele complet calificat al fi,ierului. 7rmtorul exemplu demonstreaz metodaub DemoG+tOpenFilename() Do #-ame 2 Application3GetOpenFilename /oop %ntil #-ame 9: False Ms)0o. 5Openin) 5 8 #-ame et m10ook 2 Workbook3Open (Filename42#-ame) +nd ub
Metoda 0etOpen$ilena%e
Afi,eaz dialo ul Open ,i returneaz numele de fi,ier selectat fr a deschide efecti' fi,ierul. expression.0etOpen$ilena%e4"ile"ilter, "ilter9ndex, 2itle, Button2ext, Multi<elect5 unde expression este o expresie care returneaz un obiect Application. FileFilter este de tip Variant, op&ional. Este un ,ir specific6nd criteriile de filtrare a fi,ierelor listate $n dialo . =irul const $n perechi formate din ,irul de filtrare ,i din specificarea filtrului $n format M<!.)<, toate elementele fiind separate prin 'ir ule. 3n partea rezer'at, dou filtre M<!.)< sunt separate prin (>(. Exemple- (2ext "iles 4?.txt5,?.txt,Add!9n "iles 4?.xla5,?.xla(, (Visual Basic "iles 4?.bas> ?.txt5,?.bas>?.txt(, implicit se consider (All "iles 4?.?5,?.?(. FilterIndex este de tip Variant, op&ional. <pecific indexul criteriului de filtrare implicit. de la / la numrul de filtre specificat $n FileFilter. 9mplicit se consider /. Title este de tip Variant, op&ional. <pecific titlul boxei de dialo . 9mplicit este ()pen(. Button2ext este specific pentru Macintosh. MultiSelect este de tip Variant, op&ional. Este 2rue atunci c6nd se pot selecta mai multe nume de fi,iere, "alse dac este permis selectarea unui sin ur fi,ier. 9mplicit este "alse. 3n cazul selec&iei multiple se 'a returna un tablou de denumiri 4chiar dac este selectat un sin ur fi,ier5. Metoda returneaz numele fi,ierului selectat sau numele introdus de utilizator. 3n cazul c6nd utilizatorul anuleaz boxa 4prin Cancel5, se returneaz "alse. Metoda poate schimba at6t folderul curent c6t ,i unitatea.
<e creeaz un nou caiet prin aplicarea metodei !dd la colec&ia (or* oo*s. Valoarea returnat se 'a atribui 4prin <et5 unei 'ariabile obiect pentru a putea referi noul caiet $n pro ram. @oul 8orkbook de'ine acti'.
Metoda Sa,e!s
are sintaxa expression.Sa,e!s4"ilename, "ile"ormat, %ass8ord, WriteRes%ass8ord, Read)nl;Recommended, 1reateBackup, AccessMode, 1onflictResolution, Add2oMru, 2ext1ode%a e, 2extVisual:a;out5 unde expression returneaz un obiect (or* oo*. Filename, op&ional, Variant. 1on&ine numele noului fi,ier, poate include o cale. FileFormat, op&ional, Variant. <pecific formatul de fi,ier utilizat la sal'are. :ista formatelor admise 4cele care se pot selecta ,i la sal'area din Excel5 se se,te $n +elp la proprietatea $ile$or%at.
Password, op&ional, Variant. 7n ,ir unde capitalizarea este considerat 4cel mult /C caractere5 care con&ine parola de prote*are a fis,ierului. WriteResPassword, op&ional, Variant. 7n ,ir care con&ine parola necesar pentru scrierea fi,ierului. .ac la deschidere nu se d parola exact, fi,ierul este deschis doar $n citire. ReadOnlyRecommended, op&ional, Variant. Este 2rue pentru a afi,a, la deschidere, un mesa* cu recomandarea de a deschide fi,ierul doar $n citire. 1reateBackup, op&ional, Variant. Este 2rue dac se creeaz o copie backup. AccessMode, op&ional, Variant. 1on&ine modul de acces la 8orkbook. %oate fi una dintre constantele 4din tipul Al<a'eAsAccessMode5- xl<hared 4shared list5, xlExclusi'e 4exclusi'e mode5 sau xl@o1han e 4nu se modific modul de acces5. 7ltima 'aloare este cea implicit. Ar umentul este i norat dac se sal'eaz xl<hared fr a schimba numele fi,ierului. %entru schimbarea modului de acces se utilizeaz metoda Exclusi,e!ccess. ConflictResolution, op&ional, Variant. <pecific modul de rezol'are a conflictelor de schimbare $n cazul c6nd fi,ierul este shared. %oate fi una dintre constantele 4de tip Al<a'e1onflictResolution5- xlUserResolution 4afi,eaz un dialo pri'ind conflictul ,i rezol'area55, xl:ocal<ession1han es 4accept automat modificrile locale5 sau xl)ther<ession1han es 4accept celelalte schimbri $n locul modificrilor locale5. %rima constant este 'aloarea implicit. AddToMru, op&ional, Variant. Este 2rue dac se adau numele fi,ierului la lista fi,ierelor utilizate recent. 9mplicit este "alse. TextCodePage, Text isual!ayout, op&ionale, Variant. @eutilizate $n 'ersiunea 7.<. En lish.
Metoda Sa,e
<al'eaz modificrile caietului specificat. expression.Sa,e unde expression returneaz un obiect Workbook. %entru marcarea unui fi,ier drept sal'at fr a!l scrie efecti' pe disc, se 'a atribui 'aloarea 2rue propriet&ii Sa,ed.
Metoda 0etSa,e!s$ilena%e
<imilar metodei 0etOpen$ilena%e, aceast metod afi,eaz dialo ul standard Sa,e !s, returneaz un nume de fi,ier, dar nu sal'eaz nici un fi,ier. expression.0etSa,e!s$ilena%e49nitial"ilename, "ile"ilter, "ilter9ndex, 2itle, Button2ext5 unde expression este o expresie care returneaz un obiect !pplication. InitialFilename, op&ional, Variant. <pecific numele de fi,ier propus. .ac acest nume este omis, atunci se 'a utiliza numele caietului acti'. FileFilter, op&ional, Variant. =irul care specific criteriul de filtrare. %entru structura ,irului se 'a re'edea metoda 0etOpen$ilena%e de la deschiderea documentelor. FilterIndex, op&ional, Variant. Este indicele criteriului de filtrare, de la / la numrul de filtre dat la "ile"ilter. 9mplicit este /. Title, op&ional, Variant. 2itlul boxei de dialo . "uttonText este specific Macintosh. Metoda returneaz numele de fi,ier selectat sau cel introdus de utilizator. @umele returnat poate include ,i calea. Metoda returneaz "alse dac dialo ul este $nchis de utilizator prin 1ancel. Metoda poate schimba folderul sau unitatea curent. 7rmtorul exemplu creaz un nou caiet ,i!l sal'eaz prin metoda 0etSa,e!s$ilena%eub CreateAnd ave() et ne;0ook 2 Workbooks3Add Do #-ame 2 Application3Get aveAsFilename /oop %ntil #-ame 9: False ne;0ook3 aveAs Filename42#-ame +nd ub
Metoda Close
%roduce $nchiderea obiectului. Aplicat colec&iei Workbooks are sintaxa expression.Close
unde expression returneaz un obiect (or* oo*s. .ac exist modificri ale caietelor, se 'a afi,a dialo ul de intero are asupra e'entualei sal'ri. Aplicat obiectelor (indo) ,i (or* oo* metoda are sintaxa expression.Close4<a'e1han es, "ile@ame, RouteWorkbook5 unde expression este o expresie care returneaz un obiect (or* oo* sau (indo). Sa#eC$anges este op&ional, Variant. .ac nu exist modificri, ar umentul este i norat. .ac exist modificri $n caiet dar caietul mai apare ,i $n alt fereastr deschis, atunci ar umentul este de asemenea i norat. .ac exist modificri ,i caietul nu mai apare $n alt fereastr, atunci sal'area se efectueaz dup 'alorile- 2rue # sal'area modificrilor sub numele dat la "ile@ame sau dialo <a'e As> "alse # nu se sal'eaz modificrile> ar ument omis # intero are utilizator. File%ame este op&ional, Variant. <al'eaz modificrile sub acest nume. RouteWor&'oo& este op&ional, Variant. .ac nu este indicat nici o rutare 4nu exist nici un Routin'Slip ata,at5, ar umentul este i norat. Altfel, Excel efectueazrutarea documentului dup 'alorile acestui ar ument- 2rue # trimite caietul la urmtorul recipient> "alse # caietul nu este transmis mai departe> omis # intero area utilizatorului asupra trimiterii. 3nchiderea unui 8orkbook din Visual Basic nu execut macrourile !utoDClose din 8orkbook. <e 'a utiliza metoda Run!utoMacros pentru executarea macrourilor automate de $nchidere. Aceste macrouri sunt men&inute $n Excel din moti'e de compatibilitate, deci se refer la foi automatizate $n 'ersiuni Excel mai 'echi. Exemplul urmtor arat deschiderea unui caiet, modificri temporare ale caietului ,i $nchiderea fr sal'area modificrilorub OpenChan)eClose() Do #-ame 2 Application3GetOpenFilename /oop %ntil #-ame 9: False et m10ook 2 Workbooks3Open (Filename42#-ame) < Aici se modi#ic( #oile de calcul m10ook3Close aveChan)es42False +nd ub
O iectul Ran'e
%rin intermediul unui obiect Ran'e se poate referi o sin ur celul, un domeniu de celule, o $ntrea linie sau coloan, o selec&ie cu arii multiple sau un domeniu E!.. .in acest moti' obiectul Ran'e este oarecum neuzual prin aceea c poate reprezenta at6t o sin ur celul c6t ,i o mul&ime de celule. @u exist un obiect colec&ie pentru Ran'e, as c un obiect Ran'e poate fi 6ndit fie ca un obiect, fie ca o colec&ie, dup situa&ie. Exist foarte multe propriet&i ,i metode care returneaz un obiect Ran e-
.irect.ependents Ro8"ields .irect%recedents Entire1olumn EntireRo8 Ro8Ran e Ro8s <election 2ableRan e/ 2ableRan eF 2op:eft1ell 7sedRan e VisibleRan e
1ircularReference @ext 1olumns 1urrentArra; 1urrentRe ion .ependents )ffset %a eRan e %recedents Ran e
%entru specificarea exact a acestor propriet&i ,i metode se 'or cuta subiectele respecti'e $n +elp. 3n continuare sunt men&ionate, mai mult prin exemple, moduri de lucru cu obiecte Ran'e.
Worksheets(5 heet$5)3"an)e(5A$5)36alue 2 = inserarea unei formule $ntr!o celul"an)e(50$5)3Formula 2 52>?$@A"A-D()5 inserarea aceleea,i 'alori $ntr!un $ntre "an)e(5C$4+=5)36alue 2 B ,ter erea con&inutului unor
domeniu de celule-
celuledomeniu numit 4la ni'el de 8orkbook5celule dintr!un domeniu numit 4la ni'el de
Este de men&ionat c expresiile care nu sunt calificate se refer la foaia curent, deci multe din exemplele de mai sus nu ar opera dac foaia curent este o foaie de tip chart. ) cauz frec'ent de erori este utilizarea propriet&ii Ran'e ca ar ument al altei metode fr calificarea complet a obiectului (or*sheet cruia i se aplic Ran'e. Exemplul urmtor
ort"an)e() Worksheets(5 heet$5)3"an)e(5A$40$@5)3 ort G He1$42"an)e(5A$5)C Order$42.lDescendin) +nd ub ub
nu 'a func&iona corect dec6t dac <heet/ este foaia acti', altminteri calificarea ar umentului Ge;/ nu este complet. %entru o execu&ie independent de context ar trebui folosit
He1$42Worksheets(5 heet$5)3"an)e(5A$5)
Referin&ele prin indici sunt utile mai ales la parcur erea unui bloc de celule prin instruc&iuni de ciclare. Exemplul urmtor anuleaz toate celulele din domeniul A/-./0, cu o 'aloare mai mic dec6t 0.0/ub "oundDoJero() For r;Knde. 2 $ to $@ For colKnde. 2 $ to L K# Worksheets(5 heet$5)3Cells(r;Knde.CcolKnde.) 9 @3@$ Dhen Worksheets(5 heet$5)3Cells(r;Knde.CcolKnde.)36alue 2 @ +nd K# -e.t colKnde& -e.t r;Knde. +nd ub
3n exemplul urmtor se arat o solu&ie la listarea, $ntr!o foaie separat, a tuturor denumirilor create $n caietul acti' ,i a domeniilor referite de acestea.
ub /ist-ames() et ne; heet 2 Worksheets3Add K 2 $ For +ach nm in ActiveWorkbook3-ames -e; heet3Cells(iC$)36alue 2 nm3-ame -e; heet3Cells(iCI)36alue 2 5< 5 8 nm3"e#ersDo -e.t nm -e; heet3Columns(5A405)3AutoFit +nd ub
c3O##set(@C$)36alue 2 5+rror5 +lseK# c36alue 2 55 Dhen c3O##set(@C$)36alue 2 5(blank cell)5 +nd K# -e.t c +nd ub
Exemplul care urmeaz presupune c foaia acti' con&ine date dintr!un experiment desf,urat $n timp- prima coloan con&ine datele calendaristice, a doua coloan con&ine ora $nre istrrii 'alorilor, coloanele a treia ,i a patra con&in msurtorile experimentului. %rocedura prezentat combin primele dou coloane $ntr!o sin ur 'aloare de tip .ate, con'erte,te 'aloarea ob&inut din HM2 4Hreen8ich Mean 2ime5 $n %<2 4%acific <tandard 2ime5 ,i le formateaz. .eoarece nu se ,tie dac exist ,i coloane oale $ntre cele patru coloane cu date, se utilizeaz &sedRan'e.
ub ConvertDates () et m1"an)e 2 Active heet3%sed"an)e m1"an)e3Columns(5C5)3Knsert et dateCol 2 m1"an)e3Columns(5C5) For +ach c Kn dateCol3Cells K# c3O##set(@CM$)36alue 9:55 Dhen c3Formula"$C$ 2 52"CNMIOP"CNM$O M (Q/IL)5 +nd K#
-e.t c dateCol3-umberFormat 2 5mmmMddM1111 hh4mm5 dateCol3Cop1 dateCol3*aste pecial *aste42.l6alues m1"an)e3Columns(5A405)3Delete dateCol3AutoFit +nd ub
Exist ,i alte propriet&i ,i metode care produc fie subdomenii, fie supradomenii pornind de la un obiect Ran'e. %rintre acestea enumerm- !reas- Cells- Colu%nsEntireColu%n- EntireRo)- Ran'e ,i Ro)s.
%entru ca opera&iunea anterioar s aib loc pe un domeniu selectat de utilizator, se poate utiliza metoda InputBox, specific6ndu!i utilizatorului s selecteze un domeniu de celule. Metoda returneaz un obiect Ran'e care reprezint selec&ia. 1odul este completat cu instruc&iuni de tratare a erorilor uzuale.
ub "oundDoJero () Worksheets(5 heet$5)3Activate On +rror GoDo *ressedCancel et r 2 Application3Knput0o.( G *rompt425 elect a ran)e o# cells5C G D1pe42Q) On +rror GoDo @ For +ach c Kn r3Cells K# Abs(c36alue) 9 @3@$ Dhen c36alue 2 @ +nd K# -e.t c +.it ub
.ac nu se dore,te selectarea de ctre utilizator a domeniului procesat, se poate utiliza proprietatea CurrentRe'ion sau proprietatea &sedRe'ion pentru a returna obiectul Ran'e prelucrat. .e exemplu, dac se ,tie c domeniul $ncepe cu celula A/ ,i nu include linii sau coloane 'ide, atunci se poate utiliza
et r 2 Worksheets(5 heet$5)3"an)e(5A$5)3Current"e)ion
pentru a returna $ntre ul domeniu 4compact5 de celule care se prelucreaz. 7rmtoarele dou exemple arat cum se poate ascunde fiecare a doua coloan din domeniul utilizat $n <heet/. %rimul exemplu, utiliz6nd "or EachI@ext
ub RideColumns () et r 2 Worksheets(5 heet$5)3%sed"an)e For +ach col Kn r3Columns K# col3Column Mod I 2 @ Dhen col3Ridden 2 Drue +nd K# -e.t col +nd ub
Al doilea exemplu, utiliz6nd "orI@extub RideColumns () et r 2 Worksheets(5 heet$5)3%sed"an)e For i 2 $ Do r3Columns3Count K# i Mod I 2 @ Dhen r3Columns(i)3Ridden 2 Drue +nd K# -e.t i +nd ub
Acela,i efect se poate ob&ine prin stabilirea unor expresii de urmrire 48atch expressions5 de forma r(Address ,i r(Columns)i*(Address+ 'alorile respecti'e pot fi examinate $n fereastra I%%ediate. %entru o discu&ie mai pe lar se 'a studia capitolul dedicat depanrii ,i mane'rrii erorilor.
s se creeze un nou obiect utiliz6nd cu'6ntul cheie (ithE,ents $ntr!un modul clas. 4'ezi discu&ia din sec&iunea dedicat subiectului $n acest capitol5.
&tili5area e,eni%entelor
1ompletarea procedurilor implicite de rspuns la e'enimente se efectueaz prin accesul la codul procedurilor ,i scrierea de cod $n mod uzual. %entru a 'edea procedurile de e'eniment ale unei foi 4de calcul sau dia ram5o
click dreapta pe cotorul foii 4pe bara de *os, unde se 'd cotoarele tuturor foilor din caietul acti'5, comanda Vie) Code din meniul contextual, ale erea numelui e'enimentului $n lista derulant .rocedure, sau meniul :ools, comanda Macro ,i selectarea op&iunii Visual Basic Editor. <e selecteaz foaia dorit $n %ro*ect Explorer, butonul Vie) Code ,i se ale e numele e'enimentului din lista .rocedure.
Before"ou leClic*
Apare atunci c6nd utilizatorul execut un dublu click $ntr!o celul a foii. <e 'a utiliza $n locul propriet&ii On"ou leClic*. Apare atunci c6nd utilizatorul execut un click dreapta $ntr!o celul a foii. Apare c6nd utilizatorul recalculeaz foaia. Acest e'eniment se 'a utiliza $n locul propriet&ii OnCalculate. Apare atunci c6nd utilizatorul schimb o formul dintr!o celul. <e 'a utiliza $n locul propriet&ii OnEntr#. Apare atunci c6nd foaia este acti' ,i utilizatorul acti'eaz o alt foaie. @u apare atunci c6nd utilizatorul mut focusul de la o fereastr la alt fereastr a aceleea,i foi. Acest e'eniment se 'a utiliza $n locul propriet&ii OnSheet"eacti,ate. Apare atunci c6nd utilizatorul selecteaz o celul din foaie.
BeforeRi'htClic*
Calculate
Chan'e
"eacti,ate
SelectionChan'e
Exe%plu
3n codul care urmeaz, se rea*usteaz dimensiunea coloanelor la fiecare recalculare*rivate ub WorksheetGCalculate () Columns(5A4F5)3AutoFit +nd ub
Este de remarcat c modelul procedurii este accesat printr!una din tehnicile descrise la (7tilizarea e'enimentelor(.
.eclan,ate atunci c6nd utilizatorul acti'eaz sau modific o dia ram, e'enimentele recunoscute de obiectul 1hart sunt prezentate $n tabelul urmtor.
E,eni%ent !cti,ate
"escriere Apare atunci c6nd utilizatorul acti'eaz foaia dia ram 4nu apare la dia ramele scufundate5. Acest e'eniment se 'a utiliza $n locul propriet&ii OnSheet!cti,ate Apare atunci c6nd utilizatorul execut un dublu click pe dia ram. <e 'a utiliza $n locul propriet&ii On"ou leClic*. Apare atunci c6nd utilizatorul execut un click dreapta pe dia ram. Apare c6nd utilizatorul reprezint $n dia ram date noi sau modificate. Apare atunci c6nd foaia este acti' ,i utilizatorul acti'eaz o alt foaie. @u apare atunci c6nd utilizatorul mut focusul de la o fereastr la alt fereastr a aceleea,i foi. Acest e'eniment se 'a utiliza $n locul propriet&ii OnSheet"eacti,ate. Apare atunci c6nd utilizatorul dra heaz date peste dia ram. Apare atunci c6nd utilizatorul dra heaz un domeniu de celule peste dia ram. Apare atunci c6nd utilizatorul execut un click cu un buton al mouse!ului $n timp ce pointerul acestuia este pozi&ionat pe dia ram. Apare la mi,carea pointerului mouse!ului peste dia ram.
Before"ou leClic*
BeforeRi'htClic*
Calculate
"eacti,ate
"ra'O,er
"ra'.lot
Mouse"o)n
MouseMo,e
Mouse&p
Apare atunci c6nd utilizatorul elibereaz un buton al mouse!ului $n timp ce pointerul acestuia este pozi&ionat pe dia ram. Apare la redimensionarea dia ramei. Apare la selectarea unui element al dia ramei. Apare atunci c6nd utilizatorul modific 'aloarea unei punct de pe dia ram.
E'enimentele foilor de dia rame sunt permise $n mod implicit. %entru a scrie proceduri de e'eniment pentru dia ramele scufundate, trebuie s se creeze un nou obiect utiliz6nd (ithE,ents $ntr!un modul de clas.
Exe%plu
<e schimb culoarea chenarului unui punct atunci c6nd utilizatorul schimb 'aloarea punctului*rivate eriesKnde. As /on)C G 016al *ointKnde. As /on)) et p 2 ActiveChart3 eriesCollection( eriesKnde.)3*oints(*ointKnde.) p30order3ColorKnde. 2 = +nd ub ub ChartG eriesChan)e (016al
E,eni%ent !cti,ate
"escriere Apare atunci c6nd utilizatorul acti'eaz caietul. Apare atunci c6nd utilizatorul instaleaz caietul ca un add!in. <e 'a utiliza $n locul macro!ului AutoDAdd.
!ddInInstall
!ddIn&ninstall
Apare atunci c6nd utilizatorul dezinstaleaz caietul ca un add!in. <e 'a utiliza $n locul macro!ului AutoDRemo'e. Apare $naintea $nchiderii caietului. <e 'a utiliza $n locul macro!ului AutoD1lose. Apare $naintea tipririi caietului. Apare $nainte ca utilizatorul s sal'eze foaia. Acest e'eniment se 'a utiliza $n locul propriet&ii OnSa,e. Apare atunci c6nd caietul este acti' ,i utilizatorul acti'eaz un alt caiet. Apare dup ce utilizatorul creeaz o nou foaie. Apare la deschiderea caietului. E'enimentul se 'a utiliza $n locul macroului AutoD)pen. Apare la acti'area unei foi din caiet. <e 'a utiliza $n locul propriet&ii OnSheet!cti,ate. Apare la dublu click pe o celul 4nu este utilizat cu foile dia ram5. <e 'a utiliza $n locul propriet&ii On"ou leClic*. Apare la click dreapta pe o celul a unei foi din caiet 4nu este utilizat cu foile dia ram5. Apare la recalcularea unei foi 4nu este utilizat cu foile dia ram5. <e utilizeaz $n locul propriet&ii OnCalculate.
BeforeClose
Before.rint BeforeSa,e
"eacti,ate
+e)Sheet
Open
Sheet!cti,ate
SheetBefore"ou leClic*
SheetBeforeRi'htClic*
SheetCalculate
SheetChan'e
Apare la modificarea formulei dintr!o celul 4nu este utilizat cu foile dia ram5. <e utilizeaz $n locul propriet&ii OnEntr#. Apare la acti'area altei foi din caiet. <e utilizeaz $n locul propriet&ii OnSheet"eacti,ate. Apare la modificarea selec&iei dintr!o foaie de calcul 4nu func&ioneaz cu foile dia ram5. Apare atunci c6nd utilizatorul mut focusul pe orice fereastr a caietului. <e utilizeaz $n locul propriet&ii On(indo). Apare atunci c6nd utilizatorul mut focusul $n afara oricrei fereastre a caietului. <e utilizeaz $n locul propriet&ii On(indo). Apare atunci c6nd utilizatorul deschide, redimensioneaz, maximizeaz sau minimizeaz orice fereastr a caietului.
Sheet"eacti,ate
SheetSelectionChan'e
(indo)!cti,ate
(indo)"eacti,ate
(indo)Resi5e
Exe%plu
.eschiderea caietului maximizeaz fereastra aplica&iei Excelub WorkbookGOpen () Application3Windo; tate 2 .lMa.imi&ed +nd ub
E,eni%ent
"escriere
(pentru !pplication) +e)(or* oo* Sheet!cti,ate Apare la crearea unui nou caiet. Apare atunci c6nd utilizatorul acti'eaz o foaie dintr!un caiet deschis. <e 'a utiliza $n locul propriet&ii OnSheet!cti,ate. Apare la dublu click pe o celul dintr!un caiet deschis 4nu este utilizat cu foile dia ram5. <e 'a utiliza $n locul propriet&ii On"ou leClic*. Apare la click dreapta pe o celul a unei foi dintr!un caiet deschis 4nu este utilizat cu foile dia ram5. Apare la recalcularea unei foi 4nu este utilizat cu foile dia ram5. <e utilizeaz $n locul propriet&ii OnCalculate. Apare la modificarea formulei dintr!o celul 4nu este utilizat cu foile dia ram5. <e utilizeaz $n locul propriet&ii OnEntr#. Apare la acti'area altei foi dintr!un caiet. <e utilizeaz $n locul propriet&ii OnSheet"eacti,ate. Apare la modificarea selec&iei dintr!o foaie de calcul 4nu func&ioneaz cu foile dia ram5. Apare atunci c6nd utilizatorul mut focusul pe orice fereastr deschis $n aplica&ie. <e utilizeaz $n locul propriet&ii On(indo). Apare atunci c6nd utilizatorul mut focusul $n afara oricrei fereastre a aplica&iei. <e
SheetBefore"ou leClic*
SheetBeforeRi'htClic*
SheetCalculate
SheetChan'e
Sheet"eacti,ate
SheetSelectionChan'e
(indo)!cti,ate
(indo)"eacti,ate
utilizeaz $n locul propriet&ii On(indo). (indo)Resi5e Apare atunci c6nd utilizatorul redimensioneaz, maximizeaz sau minimizeaz orice fereastr deschis $n aplica&ie. Apare atunci c6nd se mut focusul pe un caiet deschis Apare la instalarea unui 8orkbook ca un add! in. Apare la dezinstalarea unui 8orkbook ca un add!in. Apare $nainte ca un caiet deschis s fie $nchis. Apare $nainte ca un caiet deschis s fie tiprit. Apare $nainte ca un caiet deschis s fie sal'at. Apare atunci c6nd utilizatorul mut focusul $n afara unui caiet deschis. Apare la adu area unei noi foi la un caiet deschis. Apare atunci c6nd utilizatorul deschide un caiet.
(or* oo*!cti,ate
(or* oo*!ddInInstall
(or* oo*!ddIn&ninstall
(or* oo*+e)Sheet
(or* oo*Open
<e creeaz un modul de tip clas ,i se declar un obiect de tip Chart sau !pplication cu e'enimente. %entru crearea modulului clas se d comanda Class Module din meniul Insert. %entru permiterea e'enimentelor obiectului !pplication se adau declara&ia din modulul clas ,i se pot scrie procedurile e'enimentelor pentru noul obiect. <e conecteaz obiectul declarat $n modul la obiectul !pplication. %entru aceast opera&iune, $n orice modul se d instruc&iunea
*ublic With+vents App As Application )biectul nou creat apare $n boxa O ;ect
unde E'ent1lass este numele dat, de exemplu, modulului clas creat, similar pentru A.
dup crearea instan&ei A a obiectului E'ent1lass se poate stabili obiectul App al clasei E'ent1lass e al cu obiectul !pplication Microsoft Excel.
de ini&ializare, obiectul App din modulul E'ent1lass puncteaz ctre obiectul !pplication Microsoft Excel ,i procedurile e'eniment din modulul clas 'or fi executate la declan,area e'enimentelor.
.e,i procedura poate prea laborioas, ideea poate fi utilizat pentru ca acelea,i proceduri e'eniment s fie asociate mai multor obiecte. < presupunem c am efectuat etapele precedente pentru un obiect dia ram. <!a utilizat astfel declara&ia
*ublic With+vents cht As Chart
pentru ini&ializare.
Aceea,i tehnic se poate utiliza ,i pentru obiectele (or*sheet ,i (or* oo* pentru a utiliza e'enimentele noii clase cu mai multe foi de calcul, $n plus fa& de e'enimentele implicite.