Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice
VBA – moduli
mr Milovan Milivojević dipl. ing.
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice 2
Moduli (modules) – ponašanje modula
Option Explicit
Option Private Module
Option Compare {Binary |Text |Database}
Option Base {0|1} Primena: Naredbe uneti na početku modulaPrimer: Ako želimo da modul ima ekplicitno
deklarisanje promeljivih i da je Privatni
Option ExplicitOption Private Module
Sub Primer XXXX()' ...' Program statements
End Sub
Option ExplicitOption Private Module
Sub Primer XXXX()' ...' Program statements
End Sub
Ponašanje modula može se prilagoditi na 4 načina:
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice 3
Moduli (modules) – ponašanje modula
Ako se upotrebi Option Explicit svaka upotrebljena promenljiva mora biti deklarisana, inače će sepojaviti greška u sintaksi i program neće moći biti kompajliran
Preporučuje se upotreba ove opcije jer se izbegavaju suptilne greške u programu. Na primer kada seunese pogrešno ime promenljive. Ako je Option Explicit isključeno računar će prihvatiti promeljivu ali ćenjena vrednost verovatno biti pogrešna
Automatsko uključivanje u svakom modulu
Tools Options Require variable Declaration
Option Explicit
Ova opcija označava modul kao PRIVATNI tako da programski kod u njemu korisnici neće moćivideti pomoću dijaloga Macros iz Excel-a
Tools Macro Macros
Sprečava se mogućnost da se sadržaj modula poziva iz drugog PROJEKTA
Ostali Moduli iz istog PROJEKTA mogu pozivati Potprograme i Funkcije (procedure) iz ovogmodula pod uslovom da te procedure nisu pojedinačno deklarisane kao PRIVATE (privatne)
Option Private Module
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice 4
Moduli (modules) – ponašanje modula
Option Compare {Binary |Text |Database}
Ova programska naredba na početku modula definiše metod poređenjastringova (Binary, Text or Database) u datom modulu.
Podrazumevani metod je Binarni kod koga je ”AAA”<”aaa”
Kod Text poređenja je ”AAA” = ”aaa”
Option Base {0|1}
Ova programska naredba služi za definisanjeprvog indeksnog broja u matrici (ARRAY)
Ako opcija nije definisana podrazumevanavrednost je 0
a(0), a(1), a(2)...
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice
mr Milovan Milivojević dipl. ing.
Subroutine
FunctionVariables
VBA – potprogrami, funkcije, promenljive
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice 6
Pro
ced
ure
,dis
kre
tne
sekcije
pro
gra
mskog
koda
Gradivni blokovi VBA
Pro
ject
MODULE 1
…
Subroutine 1
Function 1
Subroutine 2
MODULE 2
Subroutine 3
Function 2
Function 3
MODULE n
Subroutine n
…
MODULE
Subroutine
Function
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice 7
Procedure:
SUBROUTINES
FUNCTION
Procedure
Subroutine
Function
Procedure predstavljaju kolekcije izjava (statements)(programskih naredbi), koje izvršavaju jedan ili višezadataka.
Postoje dve osnovne klase procedura
Subroutines
Functions
Osnovna razlika:
o Funkcije mogu vratiti vrednost procesu koji ih jepozvao
o Potprogrami ne moraju eksplicitno vraćatinikakvu vrednost procesu koji ih je pozvao
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice 8
VBA - Subroutine
Predstavljaju najmanji elemenatprograma koji može biti izvršen(executed)
Generalni izgled:
Sub Primer()
…
[Program statements]
…
End Sub
Subroutine: Primer
[ Private | Public | Friend ] [Static] Sub SubName ( (parameters) )[statements]
……
End Sub
Može bitiISKLJUČIVOizvršen odstrane drugihpotprograma ilifunkcija IZISTOG modula
Može biti pozvanod strane BILOKOG drugogpotprograma,funkcije iliklasnog modula.Podrazumevanavrednost za svepotprograme jePUBLIC
Statičkipotprogramipamte vrednostisvojih lokalnihpromenljivih svedo trenuka kaasledeći put budupozvani
Primenjuje sesamo zaklasnemodule
Može se deklarisati jedan ili višeparametara.
Parametri (argumenti) su fiktivni.
Svaka procedura (potprogram ilifunkcija) koja poziva potprogramsa fiktivnim parametrima mora muisporučiti odgovarajuće stvarneparametre (argumente).
Subroutine: Pozivanje
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice 9
Primer Suboutine
Sub PrvenacLorka()
MsgBox "Povedoh je ja do reke misleci da devojka je ...al' udata ona bese"
End Sub
Postupak:
• Alt +F11
• Insert → Module
• uneti kod
• pokrenuti potprogram - F5 ili Run ili
Funkcija
MsgBox
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice 10
Prikaz informacija krajnjemkorisniku
Prikupljanje ulaznih podataka tipaYes / No / Cancel
Prikazivanje trenutnih vrednostipromenljivih i analizaprogramskog koda
Primena:
MsgBox ( prompt [, buttons [, title] [, helpfile, context] )
Tekst koji sepredstavljana ekranu
Parametar
buttons definiše
koja će dugmad bitiprikazana poredteksta poruke.Ukoliko se ne unese
, podrazumeva se 0tj. biće prikazano
dugme OK
titleTekst unaslovnoj linijiprozora. Akose ne definišeonda sepodrazumevaMicrosoftExcel
Sub DobroJutro()
MsgBox “Probudite se!!! "
End Sub
A) B)Primer:
Odgovor korisnika
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice 11
Option Explicit
Sub OdgovorKorisnika()
'Deklarisanje promeljive
Dim Odgovor As Variant
Dim Poruka As String
'Primer funkcije MsgBox
Odgovor = MsgBox("Muzika je otkrovenje vece od svake mudrosti i filozofije - rekao je Betoven?" _
, vbYesNo, "PROMETEJ")
If Odgovor = vbYes Then
Poruka = MsgBox("Muzika za Elizu...", vbInformation, "Prometej")
Else
Poruka = MsgBox("Izgleda da vise volite Mocarta.", vbExclamation, "Prometej")
End If
End Sub
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice 12
Poziv Suboutine
PrimerPOZIVANJA
POTPROGRAMA
Pozivanje potprograma:
A) Jednostavnim navođenjem naziva odgovarajućegpotprograma na željenoj lokaciji unutar pozivajućegpotprograma.
B ) Upotreba izjave Call ime potprograma
Pozivanje potprograma sa parametrima:
Call ime potprograma X,Y,Z
ili
Ime potprograma X,Y,Z
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice 13
Function
[ Private | Public | Friend ] [ Static ] Function FunctionName ( (parameters) ) [As Type][statements]……FunctionName=FunctionResult
End Function
U odnosu na Subroutine UVEK omogućujupovratak određene vredosti ka proceduri izkoje je funkcija pozvana.
Mogu se definisati Korisničke funkcije(User – defined) koje se potom mogukoristiti iz Excel-a kao i sve poznate funkcije
Functions
Preporučuje se deklarisanjeTIPA podataka koji će bitidodeljen IZLAZNOJvrednosti funkcije
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice 14
Function
Function : Primeri
Function Juce() As Date
Juce = Now() - 1
End Function
Function PDV(x) As Double
PDV = x * 0.20
End Function
Korisnički definisane funkcijemogu se koristiti iz Excel-akao i sve druge funkcije nasledeći načine:
1. Jednostavnim navođenjemimena funkcije (primer:
• Pozicioniranje u ćeliju
• =juce()
2. Preko menija
Insert →Function →UserDefined → Izbor funkcije→ OK
4/8/2013Visa Poslovno Tehnička Škola - Užice 15
Poziv Potprograma iFunkcija:PRIMERI
Visoka poslovno-tehničk
a škola
Užice 2012/13
Visoka poslovno-tehničk
a škola
Užice 2012/13
4/8/2013Visa Poslovno Tehnička Škola - Užice 16
VARIABLES
Program se sastoji od:
• Promenljivih- variables
• Programskih redova (statements-izjava)
• operatora
PROMENLJIVE su stavke ili objekti kojeprogramski kod obrađuje
Primeri promenljivih :
• Broj – nad kojim se realizuje neka matematičkaoperacija
• Tekstualni string – koji se može editovati
• Radni list
• Blok ćelija
• Radna knjiga
• Bilo koji objekat Excel-a ...
Rad sa Promenljivim :
• Kreiranje varijable ododgovarajućeg podatkam ili tipaobjekata
• Inicijalizacija –dodela početnihvrednosti
• Primena određene operacije iliizjave (naredbe) nad varijablom
Pojmovi značajni za Varijable
• Deklarisanje
• Tipovi podataka
• Oblast važenja (SCOPE)
• Životni vek (LifeTime)
Razvoj konceptualnog modela promenljivih–
PRVI OZBILJNI ZADATAK u programiranju
PRIMERI