Microsoft Office Excel
uređuje Dragan Grbić

Bookmark and Share
Matična strana sajta
  Novo na sajtu
  Mapa sajta
  Beleške
  Kontakt
  Pretraga MSKB

 Blog Praktikuma
  RSS feed
  P@W @Tw

  Izvezi stranicu u PDF
 
Office Praktikum

Još o Excelu
 


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

 
       

Sponzori sajta

SBB CS 1.6 game server: 82.117.200.1
 
Connectivity by SBB

 


 

Informacije

NOVOSTI

I još dva nova priloga o Excelu
Novi prilozi o Wordu
Novi i prilozi u temi "razno o Officeu"
Novi članci o novostima u Officeu 2010!

SADRŽAJI ZA PREUZIMANJE

Lokalizacija Total Commandera 7.51Obe jezičke školjke za popularni program na srpskom sad funkcionišu u bilo kojoj varijanti Windowsa!
RNDalica.ExcelDodatak za Excel 2007/2010 za generisanje slučajnih podataka!
YuConv.ExcelDodatak za Excel 2007/2010 za konverziju pisama!
YuConvNetDodatak za Word 2007/2010 za konverziju pisama i kodnih rasporeda!

SKREĆEMO PAŽNJU

Kako pretraživati MSKB
a pronaći ćete i još mnogo novih sadržaja...

KONTAKT

Da li znate za pravila koja važe pri kontaktu sa nama? Molimo vas da se obavestite o tome!
 
POZIVAMO VAS

i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.

  (C) 2000-2010 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-2010 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-2010; Valinor Design; sva prava pridržana.