|
Microsoft Office Excel |
|
|
Automatsko bojenje formulaNivo:
Šta nema u izlogu, ima u radnji: kada Office program nema neku funkciju, onda lepo zasučemo rukave, pa je napravimo u VBA... Jedan kolega je svojevremeno na SezamuPro zatražio način da unapred pripremi područje radnog lista u Excelu tako da ćelije sa formulama budu jasno izražene u odnosu na konstante. Naravno, pokušao je ono što bi pokušao i svako od nas: pozvao je u pomoć alatku Conditional Formatting u nameri da unapred dodeli neko svojstvo takvim ćelijama. Ali, ova alatka ne može pomoći u takvim prilikama: uslovno formatiranje se može primeniti samo nad konstantama određene vrednosti ili na tačan sadržaj formule. Setio sam se da VBA može da prepozna da se u ćeliji nalazi formula (svojstvo HasFormula) i brže-bolje sam kolegi poslao sledeći makro:
Sub JesteFormula() Makro je pomogao: njegovim aktiviranjem, sve ćelije koje sadrže formule će biti ispisane crveno i boldovano. Ali, nisam bio zadovoljan ovim rešenjem, jer nije automatizovano: sledeća uneta formula neće biti označena na isti način sve dok se makro ne pozove ponovo. Nešto kasnije sam se vratio problemu, misleći da će biti najbolje povezati ovu VBA proceduru sa nekim događajem koji će se aktivirati pri otvaranju radne sveske. Dok sam radio, pogrešio sam u sintaksi; tek kad sam otvorio Help, shvatio sam da sam na krivom tragu: Excel je već obezbedio prostor za ovakve potrebe. Umesto da se ubacuje novi modul u VBE, u prozoru VBAProject treba označiti objekat Sheet1 (ili kako se već zove radni list o kome je reč) i u padajućim listama pronaći rezervisanu proceduru Worksheet_Change. Konačno, gotov makro je izgledao ovako:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Ništa lakše! Sva automatika je konačno obezbeđena: nakon bilo kakve promene sadržaja na radnom listu, program će prepoznati novu formulu i promeniti boju sadržaja ćelije.
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2011; Valinor Design; sva prava pridržana. |