3/13/2013Visoka poslovno-tehnička škola - Užice
Uvod u objektno programiranje
Introduction toObject Oriented Programming (OOP)
mr Milovan Milivojević dipl. ing.
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice 2
VBA – Visual Basic for ApplicationNije potpuno objektno programiranjeNeophodnost postojanja HOST aplikacije(Excel)
Elementi Objektnog Programiranja objektni model, objekti
Svojstva
Događaji
Procedure
Klase
Moduli
Forme
Enkapsulacija, Nasledjivanje, Polimorfizam...
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice 3
Programiranje VBA u Excel-u
Rezultati investicionihistraživanja…
Software za mehaniku tla ifundirnaje…
Ekonomika biznisa Analiza stabilnosti tehnoloskih
procesa… Statističke metode za
upravljanje kvalitetom… Generatori finansijjskih ponuda Upravljanje projektima –Gantt GIS integracija ...
Analizaproblema
/ Ideje / Znanje /Algoritmi /
Programiranje /Umetnost
Zadovoljstvo klijenata
KONSALTING
Software-skakreativnost /Resavanjeproblema
Primeri aplikacija
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice 4
VBE – Visual Basic Editor
Razvojno okruženje
Alt + F11 – pokretanje
Default prozori
Project Window
Properties Window
Immediate Window
Windows
Floating – plivajući
Dockable – dokirani
Vidljivost
View – Project Explorer
Ostali prozori (debugging) Local
Watch
Call Stack
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice 5
Prozor – Project Explorer
Prikaz koda za svaki od objekata
Selekcija + View Code na paletiProject Explorera
Selekcija + DTM + View Code izpom. Menija
Selekcija + F7
Selekcija + View + View Code
MicrosoftExcel Object
Korisničkeforme
User formsFORMS
ModulesProgramski
moduli -Kontejneri zaprocedure iprogramski
kod
ClassModulesKlasni
modulii -KModuli kojiomogućujukreiranje
sopstvenihobjekata
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice 6
VBA – Visual Basic for Application
Pravila sintakse VBA programiranja Početni mentalni model Okvir za izvršavanje najrazličitijij programerskih
zadataka
Prostudirati problem 22 x Problem u objašnjavanju: Koncepti objašnjeni
pomoću koncepata koji još nisu objašnjeni Programiranje – Umetnost – Kreacija - Nauka
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice 7
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
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice 8
VBA - Moduli
Pro
ject
MODULE 1
…
Subroutine 1
Function 1
Subroutine 2
MODULE 2
Subroutine 3
Function 2
Function 3
MODULE n
Subroutine n
…
Kontejner programskog koda
Grupisanje srodnih procedura (potprograma ifunkcija)
Omogućuju mehanizam deklarisanjazajedničkih (deljenih) promenljivih za sveprocedure unutar modula
Omogućuju Private procedure koje se ne vide izdrugih projekata ili modula (Visibility)
Lakše održavanje i ponovna upotrebaprogramskog koda - PREDNOST
Kreiranje modula prema funkcionalnosti(primer)
1. Module 1- interakcija sa bazom podataka
2. Module 2 – formatiranje podataka
3. Module 3 – Interakcija sa korisnikom
Lakše pronalaženje koda za izmene imodifikacije
MODULE
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice 9
VBA - Subroutine , Function
Pro
ject
MODULE 1
…
Subroutine 1
Function 1
Subroutine 2
MODULE 2
Subroutine 3
Function 2
Function 3
MODULE n
Subroutine n
…
Predstavljaju najmanji elemenat programakoji može biti izvršen (executed)
Generalni izgled:
Sub Primer()
…
[Program statement]
…
End Sub
Predstavljaju korak napred u odnosu naSubroutine jer omogućuju povvratakodređene vredosti ka proceduri iz koje jefunkcija pozvana
Mogu se definisati Korisničke funkcije(User – defined) koje se potom mogukoristiti iz Excel-a kao i sve poznate funkcije
Pro
ce
du
re
Subroutine
Function
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice
Primer
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice
Elemnetarni Primer
Private Sub CommandButton1_Click()Call PrimerALG1
End Sub
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice
Elementarni Primer / strana 1
Option ExplicitOption Base 1'By Mr Milovan Milivojevic dipl. ing, Dj. Forst, P.Popovic,, M.Suljagic'ALT+F11 -pokretanje VBA editora'Insert ---Module - dodavanje modula'U Modeule1 uneti program i testirati sa F5Sub PrimerALG1()
'deklarisanje objektinih promenljivihDim wb As WorkbookDim rg As Range
'deklarisanje obicnih varijabliDim i As ByteDim j As ByteDim n As IntegerDim S As IntegerDim P As Double'deklarisanje Matrice ADim A(15, 15) As Integer
'Inicijalizacija promenljivihSet wb = ThisWorkbookSet rg = wb.Worksheets("Sheet1").Range("B2")S = 0P = 1
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice
Elementarni Primer / strana 2
'Brisanje sadrzaja radnog listaWorksheets(1).Cells.Clear
'Ispisivanje teksta u celiji B2rg.Value = "PRIMER ZADATAK-1 //M.Milivojevic, Dj.Forst"
With rg.Font.Bold = True.Color = RGB(255, 0, 0)
End WithSet rg = rg.Offset(2, 0)
'Ispisivanje teksta u celiji B4rg.Value = "MATRICA - A"
With rg.Font.Bold = True.Color = RGB(0, 0, 255)
End WithSet rg = rg.Offset(2, 0)
'Ucitavanje dimenzije matricen = InputBox("Uneti dimenziju MAtriceA, n<=15", "PROMETEJ")
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice
Elementarni Primer / strana 3
'generisanje MatriceA - a(i,j)- slucajni celi brojevi u intervalu -5 do +15For i = 1 To n
For j = 1 To nRandomizeA(i, j) = Round(Rnd * (15 - (-5)) + (-5), 0)rg.Value = A(i, j)With rg.Font
.Bold = True
.Color = RGB(0, 0, 255)End With'Bojenje podloge u zavisnosti da li je clan iznad, na ili ispod glavne dijagonaleIf i < j Then
rg.Interior.Color = 234'racunanje zbira za clanove IZNAD glavne dijagonaleS = S + A(i, j)
ElseIf i > j Then
rg.Interior.Color = RGB(0, 255, 255)'RAcunanje proiyvoda za clanove ISPOD glavne dijagonaleP = P * A(i, j)
Else'Uokviravanje clanova na glavnoj dijagonalirg.Borders.Color = 22
End IfEnd IfSet rg = rg.Offset(0, 1)
Next jSet rg = rg.Offset(1, -n)
Next i
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3
3/13/2013Visoka poslovno-tehnička škola - Užice
Elementarni Primer / strana 4
Set rg = rg.Offset(2, 0)
'Stampanje rezultatarg.Value = "Suma Clanova Iznad GLAVNE DIJAGONALE"
With rg.Font.Bold = True.Color = RGB(255, 0, 0)
End WithSet rg = rg.Offset(1, 0)rg.Value = S
Set rg = rg.Offset(2, 0)
rg.Value = "PROIZVOD Clanova Ispod GLAVNE DIJAGONALE"With rg.Font
.Bold = True
.Color = RGB(0, 0, 255)End With
Set rg = rg.Offset(1, 0)rg.Value = P
'Razdruzivanje promenljivihSet rg = NothingSet wb = Nothing
End Sub
Visoka
poslo
vno-t
ehnič
ka šk
ola U
žice 2
012/1
3