|
Microsoft Office Excel |
|
|
Programirano brisanje opozivaNivo:
Taman se naviknete na jedan mehanizam programirajući u jednom Office programu, da biste kasnije otkrili da taj isti mehanizam ne postoji u VBA okruženju drugog programa. Treba poznavati neke "sitnice ispod haube", pa se poslužiti njima, kao u ovom slučaju. Mehanizam opoziva radnje (Undo) počiva na održavanju posebnog memorijskog prostora (bafera) koji čuva stanje blokova dokumenta pre izvršenja komande. Sasvim sigurno, mnogo ste puta kliknuli na zakrivljenu strelicu ulevo ili pritisnuli CTRL+Z da biste popravili neku omašku; ovaj mehanizam je nešto što se podrazumeva u svakom iole ozbiljnijem programu za obradu sadržaja bilo koje vrste. Kada programirate VBA module da biste automatizovali procese, što je česta pojava u Excelu, postoje dva posebna načela na koja ponekad morate paziti. Prvo načelo je nekad, u doba 16-bitnih platformi, bilo važno sa stanovišta očuvanja integriteta programa, dok danas, na računarima sa puno memorije i dobrom procesorskom snagom deluje pomalo anahrono. Elem, postojale su prilike kada je valjalo misliti na pražnjenje bafera za opoziv, jer bi njegovo prepunjavanje moglo dovesti do narušavanja rada programa ili sporijeg rada; ako nekim slučajem još uvek radite u Officeu 97, preporučiću vam da mislite na to. Drugi razlog je mnogo ozbiljniji: ako koristite zaštićene VBA module da biste pripremili namensku aplikaciju u kojoj korisnik ne može da uradi ništa osim predviđenih radnji, onda bi bilo vrlo poželjno da na kraju procedure bafer bude ispražnjen. U protivnom, korisnik bi mogao da slučajno ili namerno naloži Undo i tako možda poremeti neko stanje u dokumentu. Ovde postoji "mali" problem: dok VBA model Worda sadrži klauzulu ActiveDocument.UndoClear koja briše bafer opoziva, Excel ne raspolaže sličnim mehanizmom. Razlog za to je u prirodi rada Excelovih makroa: bafer se svakako automatski briše kada makro napravi bilo kakvu promenu unutar sadržaja radne sveske, pa neka zaštitna funkcija od prepunjavanja nikad nije bila toliko potrebna kao u Wordu. Ali, opet možda opstaje prikladna potreba za pražnjenjem bafera; zato je zgodno da na kraju svakog makroa koji je deo vaše Excel aplikacije napravite neku "nepotrebnu" promenu i tako anulirate stanje bafera posle automatske procedure. Recimo, iskopirajte sadržaj neke ćelije natrag u tu istu ćeliju i postigli ste cilj. Evo kako to možete učiniti:
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2010; Valinor Design; sva prava pridržana. |