|
Visual Basic for Applications |
|
|
Reagovanje na događajNivo:
Svakom ozbiljnom korisniku Office programa je važno da ovlada makar elementarnim tehnikama rada sa jezikom VBA, jer se tako mogu postići zaista vrlo ozbiljni dobici u vremenu i kvalitetu urađenog posla. Excel je nekako najprikladniji za "igranje", pa se ovaj put prisetimo jedne vrlo ozbiljne tehnike - programiranja događaja. Naime, osim makroa koji se snimaju ili pišu, a izvršavaju samo na zahtev korisnika i korisničkih funkcija koje postaju ravnopravne sa Excelovim, moguće je dodati neki programski kod određenim, unapred definisanim događajima na nivou radnog lista ili cele radne sveske. Primena ove grane VBA modula je lakša nego što se u prvi mah čini. Kada otvorite VBE (ALT+F11), u oknu Project se već nalazi hijerarhija objekata radne sveske, gde su predstavljeni svi radni listovi i objekat ThisWorkbook. Duplim klikom na neki od objekata, otvoriće se okno za pisanje modula, koje je nešto drugačije nego prozor "običnih" modula. Kliknite dvaput, recimo, na objekat ThisWorkbook i obratite pažnju na levu padajuću listu pri vrhu glavnog okna. Odaberite stavku Workbook, a potom otvorite desnu listu: sada se tu nalazi lista sa dvadeset događaja koje možete programirati. Izborom neke od stavki, odmah će se formirati odgovarajuće zaglavlje, upadljivog oblika i sa neophodnim sistemskim argumentima. Evo prostog primera: izvešćemo da se unutrašnji prozor radne sveske (unutar glavnog prozora Excela) vidi isključivo maksimizovan, tako što ćemo narediti da se pri događaju WindowResize prozor odmah maksimizuje:
Sledeći listing je ozbiljnije prirode. Recimo, treba da unesete nekoliko vrednosti u radni list, pri čemu njihov zbir ne sme da pređe neku unapred zadatu veličinu. Alatka Validation ovde ne može da bude od pomoći, pošto ona reaguje samo na direktni unos vrednosti u ćeliju kojoj je postavljeno ograničenje. Napisali smo kod koji reaguje na promenu sadržaja na radnom listu. Ako zbir bude premašen, ćelija zbira će biti obojena u žuto i pojaviće se upozorenje. Čim se zbir vrati u zadati okvir, boja ćelije će se vratiti u podrazumevanu. Private Sub Worksheet_Change(ByVal Target As Excel.Range) Napomenimo na kraju da se reagovanja na događaje mogu privremeno ili trajno isključiti programskim putem u nekom klasičnom makrou, navođenjem izraza
Vraćanjem vrednosti na True, događaji se vraćaju u aktivno stanje.
|
|
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. |