Visual Basic for Applications
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

VBA: ima još...
 


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
 

Reagovanje na događaj

Nivo:  NIVO 3 - klinite za objašnjenje


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:

Private Sub Workbook_WindowResize(ByVal Wn As Window)
ActiveWindow.WindowState = xlMaximized
End Sub

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)
' u primeru, zbir je u ćeliji C10, a max zbir je 100

If Range("C10").Value > 100 Then
    Range("C10").Interior.ColorIndex = 6
    MsgBox "Zbir je veći od 100!", vbExclamation
Else
    Range("C10").Interior.ColorIndex = xlColorIndexNone
End If

End Sub

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

Application.EnableEvents = False

Vraćanjem vrednosti na True, događaji se vraćaju u aktivno stanje.

 

  (C) 2000-2010 Praktikum na Webu

PC 67


 
 

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.