Microsoft Office Excel
uređuje Dragan Grbić

 Office Praktikum | Mapa sajta 

 
Bookmark and Share
Matična strana sajta
Novo na sajtu
Mapa sajta
Beleške
Knjiga posetilaca
Kontakt

Prethodna stranica
Pretraga sajta
Pretraga MSKB

Blog Praktikuma
RSS feed 
 
Office Praktikum

Još o Excelu
 


Skoro svakodnevno slušamo
  Radio Paradise:
  eklektični muzički online radio bez reklama!
 

   

Sponzori sajta

  Connectivity by SBB
 
Connectivity by SBB

 

Informacije

NOVOSTI
Novi prilog o Wordu
Tri nova autorska članka
Četiri priloga o Accessu
Opis i uputstvo za alatku YuCirLat '08 (Word)

SADRŽAJ ZA PREUZIMANJE
YuCirLat '08 unapređena alatka za konverziju kodnih rasporeda u Wordu

SKREĆEMO PAŽNJU
Beleške: B(l)oga li ti tvoga!- prilog koji će nekog možda čak i da naljuti
Kako pretraživati MSKB
* a pronaći ćete i još mnogo novih sadržaja...

USKORO SERIJA ČLANAKA O OFFICEU 2010

POZIVAMO VAS
* i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.



  (C) 2000-2009 Praktikum na Webu
 

Programirano brisanje opoziva

Nivo:  NIVO 3 - klinite za objašnjenje


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:

Sub NekaProcedura()

' cela procedura...
' ...

' ključni red:
Range("A1").Copy Range("A1")

End Sub

 

  (C) 2000-2009 Praktikum na Webu

PC 102


 
 

Vrh stranice  Prethodna stranica  Naslovna strana  Mapa sajta  Pretraga

AFORIZAM ZA DANAS OVIH DANA SLUŠAMO...

Copyright © Praktikum na Webu, 2000-2009; Valinor Design; sva prava pridržana.