Presentation is loading. Please wait.

Presentation is loading. Please wait.

MAŠINSKI FAKULTET KRAGUJEVAC VisualBasic for Aplication

Similar presentations


Presentation on theme: "MAŠINSKI FAKULTET KRAGUJEVAC VisualBasic for Aplication"— Presentation transcript:

1 MAŠINSKI FAKULTET KRAGUJEVAC VisualBasic for Aplication

2 1 Uvod u VBA Visual Basic for Aplication ili skraćeno VBA, predstavlja programski jezik koji omogućava korisniku da programira makroe za rešavanje složenih zadataka u okviru aplikacija kao što su Excel, Word, Power Point, Access i drugi. Primena VBA u Excel-u daje mogućnost razvoja procedura (tzv. makroa) koje profesionalni rad čine lakšim, pokazujući pritom da je moguće postići uštedu vremena u radu. VBA intro

3 Programsko okruženje VBA

4 Bezbednost i podešavanja

5

6

7

8 Visual Basic Editor u Excel-u
Visual Basic Editor ( VBE) pokrecemo opcijom Tools / Macro / Visual Basic Editor ili prečicom Alt+F11 1 2 3

9 Za vreme rada sa ovim editorom otvorena su tri prozora:
The Project window (1), Code window (2) i Properties window (3) U okviru View padajućeg menija potrebno je aktivirati dva toolbar-a: The Standard Toolbar i Edit Toolbar : Koristićemo Undo/Redo strelice kojima ispravljamo greške pisanja koda, Run koja pokreće proceduru, Reset - zaustavlja izvršavanje. primer startovanja VBE

10

11 The Project Window Objekti čine delove različitih workbooks-ova. Oni su listovi u workbook-u, zatim mogu biti forme i moduli.

12 Forme i module dodajemo desnim klikom na Project Window /
Insert/ Module

13 The Properties Window Properties window pokazuje osobine selektovanog objekta u Project window-u. Postoji mogućnost modifikovanja ovih osobina.

14 Klik na “Sheet1” u Project window-u daje sve osobine lista:
(Name) – koje predstavlja VBA ime lista, Name – predstavlja naslov (ime tab-a u Excel-u), Visible – kontrola vidljivosti lista (1-xlSheetVisible, xlSheetHidden ili 2- xlSheetVeryHidden)...

15 The Code window Ulazni podaci su crne boje, komentari zeleni, rezervisane reči plave boje

16 Debug programa Zadatak xls

17 Debug opcije F9 breakpoint, tačka prekida programa
F8, Shift+F8, Shift+Ctrl+F8 step / korak po korak izvršavanje programa watch window, locals window - prozori sa tekućim vrednostima odabranih promenljivih Shift+F9 brzi watch

18 Kreiranje makroa Otvorićemo Excel i novu radnu svesku
Pokrećemo Tools / Macro / Visual Basic Editor Dodajemo modul u Project Window-u U Code Window-u kreiramo naš prvi makro (proceduru) Zadatak je da procedura ispiše poruku “Unesite Vaše ime ” ime.xls primer kreiranja makroa

19 Snimanje makroa Poktenite Tools / Macro / Record New Macro, nakon čega se pojavljuje prozor: Ponuđen je unos naziva makroa, prečice kao i opis namene makroa

20 Potvrdom postavki pojavljuje se malena traka:
Levo dugme - zaustavljanje snimanja Desno dugme - odnosi se na apsolutne ili relativne reference. snimanje makroa.xls primer snimanja makroa

21 VBA Programiranje

22 2 Uvodne napomene Pravila pisanja Osnovna pravila o urednosti:
makroi treba da se pišu pregledno što češće pisati komentare; počinju apostrofom ( ‘ ) Osnovna pravila pisanja: sve VBA procedure (makroi) počinju sa Sub ime_makroa() a završavaju sa: End Sub

23 sve VBA klauzule se pišu u jednom redu Sub makro001()
Sub poruka() MsgBox ”Moja prva procedura” End Sub poruka.xls sve VBA klauzule se pišu u jednom redu Sub makro001() zapis = InputBox(”Unesite kriterijum:”, _ ”Pretrazivanje”, ”xyz”) End Sub makro001.xls što češce koristi Macro Recorder kako bi se izbeglo nepotrebno pisanje koda,

24 Prozori za poruke i unos podataka
Message box Predstavlja osnovni alat za interakciju sa korisnikom. Koristi se da: da daje informacije, da upozorava korisnike da od korisnika traži da izabere odgovarajući put (Yes / No poruke). MsgBox "Your message here"

25 MsgBox("Da li zelis da obrises sve podatke?",_
Yes/No message box MsgBox("Da li zelis da obrises sve podatke?",_ vbYesNo,"Warning") makro002.xls Postoje jos i vbOKCancel i vbRetryCancel Message box.

26 makro003.xls Input box Koristi se za unos proizvoljnih vrednosti
InputBox("Za koju godinu zelite izvestaj?") makro003.xls

27 3 Objekti, metode i svojstva
Objekti aplikacije, radne sveske, radni listovi , ćelije... Svojstva osobine kojima opisujemo objekte. Metode načini rada sa objektima, recimo zatvaranje objekata, otvaranje,kopiranje itd. ActiveWorkbook aktivna radna sveska ActiveSheet aktivni radni list. Range objekat koji opredeljuje neki opseg. Value svojstvo odredjenog opsega ActiveSheet.Range("A1").Value a = ActiveSheet.Range(“A1”).Value ActiveSheet.Range("A1").Value = p

28 Workbook – radna sveska
Workbook.Close zatvaranje aktivne radne sveske Workbook.Save čuvanje aktivne radne sveske Worksheet – radni list Sheet1.Select aktiviranje radnog lista Celije, vrste i kolone Range("A1").Select - selektuje ćeliju A1 Range("A1:A5").Select - selektuje sve ćelije od A1 do A5 Range("A1,A5,B4").Select - selektuje ćelije A1, A5 i B4 Columns("A").Select - selektuje kolonu A Rows("1").Select - selektuje 1.vrstu Offset Activecell.Offset(0,3).Select - pomeranje za 3 ćelije u desno Activecell.Offset(3,0).Select - pomeranje za 3 ćelije na dole

29 Čitanje i upisivanje vrednosti pri radu sa ćelijama
Range pristup po imenu ćelije Range().Activate i ActiveCell direktan pristup ćeliji Cell pristup preko indeksa vrste i kolone Pristup ćeliji preko imena Čitanje vrednosti x = Range(”test ”) makro004.xls Upisivanje vrednosti: Range(”Test2”) = Range(”Test”) makro005.xls

30 Range(”B1”).Activate makro007.xls
Direktan pristup celiji Čitanje vrednosti: Range(”A1”).Activate ‘ Aktivira se ćelija “A1” x = ActiveCell.Value ‘ x uzima vrednost iz ćelije “A1” makro006.xls Upisivanje vrednosti: Range(”B1”).Activate makro007.xls ActiveCell.Value = X Cells funkcija Cells (3, 1) = ’ Upisuje broj 1 u ćeliju A3 makro008.xls

31 4 Promenljive i operatori
Deklaracija: Dim <ime_promenljive> As <tip_podatka> Dim tekst1 As String Tipovi podataka tekst String datum Date brojevi Integer, Long, Simple, Double univerzalni tip Variant ostali tipovi Boolean, Currency, Byte i Object Napomena: Ukoliko promenljiva nije deklarisana ona automatski postaje tipa Variant.

32 Operatori Aritmetički operatori '+', '-', '/', '*', '^' i 'mod'
Operatori poređenja <', '<=' , '>' , '>=' , '=' i '<>‘ Operatori za dodelu vrednosti ‘=’: Operatori za povezivanje stringova '&' i '+‘ Logički operatori 'And', 'Eqv', 'Imp', 'Not', 'Or' i 'Xor'

33 Standardne matematičke funkcije
Funkcije u VBA Objašnjenje Sin (x) sin x Cos (x) cos x Tan (x) tg x Atn (x) arc tg x Exp (x) ex Log (x) ln x Log (x) / Log (n) logn x Abs (x) | x | Sgn (x) Znak Int (x) Odbacuje decimalni deo Fix (x) Fix(x)=Sgn(x)*Int(Abs(x)) Rnd (x) Zaokruzuje na blizu vrednost Sqr (x) x

34 5 Kontrola toka programa
Uslovni operator IF 1) Konstrukcija If..Then...End If If <uslov> Then   <operator1> End If Izvršiti odgovarajuću naredbu ako je zadovoljen navedeni uslov: a) y=x2 ako je x>0 If x > 0 Then y = x^2 End If b) y=2x ako je x=0 If x = 0 Then y = 2*x End If c) y=x ako je x>0 If x >= 0 Then y = x End If

35 Napisati program za izračunavanje funkcije:
makro009.avi makro009.xls 2) Konstrukcija If..Then...Else...End If If <uslov> Then <operator1> Else <operator2> Endif Ako je a>b onda je c=a*b, Ako je a<=b onda je c=a+b. If a > b Then c = a * b Else c = a + b End If

36 3) Konstrukcija If..Then..ElseIf...End If
If <uslov1> Then <operator1> ElseIf <uslov2> Then <operator2> . . ElseIf <uslovN> Then <operatorN> Else <operatorO> End If Definisati kategoriju vrednosti robe na osnovu sledeće tabele: Rešenje 1: If V <= 50 Then IC = 1 Else If V <= 125 Then IC = 2 If V <= 200 Then IC = 3 IC = 4 End If Rešenje 2: If V <= 50 Then IC = 1 ElseIf V <= 125 Then IC = 2 ElseIf V <= 200 Then IC = 3 Else IC = 4 End If

37 Select Case <uslovna_vrednost>
Operator višestrukog izbora – Select Case Select Case <uslovna_vrednost> Case <vrednost1>           <operator1> . Case <vrednostN> <operatorN> Case Else <operator0> End Select Zadatak: Napisati program za izračunavanje vrednosti y prema formuli: Makro010.xls

38 Do While <uslov>
Klauzula Do..Loop 1) Do While…Loop Do While <uslov> <operator> Loop 2) Do Until…Loop Do Until <uslov> brojac = 1 Do While brojac <= 10 brojac = brojac + 1 Loop brojac = 1 Do Until brojac = 11 brojac = brojac + 1 Loop Napisati program za izračunavanje sume prvih N celih brojeva makro011.avi makro011.xls

39 Izračunati sumu prvih N prirodnih brojeva korišćenjem
Klauzula For..Next For brojac = a To b <operator> Next Izračunati sumu prvih N prirodnih brojeva korišćenjem For…Next petlje: makro012.xls Vrednost brojača pri prolazu kroz For..Next petlju može se menjati za različite vrednosti korišćenjem operatora Step: For brojac = 1 To 10 Step 2 For brojac = 10 To 1 Step -1 Izračunati sumu svih neparnih brojeva do broja N: makro013.xls

40 Operatori skoka: GoTo i Exit GoTo: GoTo labela …
labela:operator GoTo Mesto_skoka Linija2: String1 = "pozdrav" Mesto_skoka: String1 = “Veliki POZDRAV” Exit : If Selection.Value > 10 Then Exit For If Selection.Value > 10 Then Exit Do If Selection.Value > 10 Then Exit Sub

41 6 Nizovi Definisanje nizova Dim vector(2) As Double
Dim A(10, 45) As Integer Dim SS(2, 3, 4) As String Izračunati sumu elemenata niza x koji ima 20 članova makro014.xls Sabrati matrice A i B dimenzija 3x4 i rezultat smestiti u matricu C makro015.avi makro015.xls Pomnožiti matrice A(4x5) i B(5x4) i rezultat smestiti u matricu C(4x4) makro016.xls

42 7 Funkcije i procedure VBA se sastoji isključivo iz procedura i funkcija. Predstavljaju ekvivalent potprograma u drugim programskim jezicima. Funkcije Function ime_funkcije(arg1, arg2,...) As tip_podatka Operator1 . OperatorN End Function

43 Function zbir2(x, y) As Integer
End Function Funkcija koja računa zbir dva broja: Funkcija koja računa zbir tri broja koristeći prethodnu funkciju zbir2: Function zbir3(x, y, z) As Integer zbir3 = zbir2(x, y) + z End Function Napisati funkciju koja računa sumu elemenata niza x(n) Function zbir(x, n) For i = 0 To n - 1 zbir = zbir + x(i) Next End Function makro017.xls

44 Procedure Sub ime_procedure(arg1,...,argn) operator1 . operatorN End Sub Sub glavni_makro() . Call ime_procedure (arg1,...argN) End Sub Napisati program koji tri broja x, y i z uređuje u neopadajući poredak x<=y<=z. U glavnoj proceduri uključiti proceduru razmeni() kojom se razmenjuju vrednosti dve promenljive. makro018.xls

45 8 Stringovi Dim p As String Funkcije za rad sa stringovima
p=”Auto”+”matizacija” Rezultat je p=”Automatizacija” Funkcije za rad sa stringovima Str(num) funkcija pretvara broj u string: s=Str(345) s= ”345” InstrRev(str1, str2) vraća poziciju od koje je string str2 sadržan u stringu str1. p =InstrRev(”Programiranje” , ”gram”) p=4 StrReverse(str) kao rezultat vraća string u inverznom poretku. s = strReverse(”Pozdrav”) s = ”vardzoP”

46 Val(str) pretvara string u broj.
p = Val("2457") Vraca 2457 Len(str) vraća broj koji predstavlja dužinu stringa. p = Len("program") p = 7 Asc(str) vraća ASCII kod prvog slova u stringu. p = Asc("A") p = 65 Mid(str1, start,[d) vraća podstring stringa str1 duzine d (opciono) počevši od pozicije start. s = Mid("program", 4, 4) s = “gram”

47 9 Ispitni zadaci Napisati glavnu proceduru i funkciju koja odredjuje predznak proizvoda članova niza bez mnozenja. makro019.xls Napisati program za sortiranje niza realnih brojeva u rastućem poretku. Napisati posebnu proceduru koja obavlja sortiranje a zatim je pozvati iz druge procedure u kojoj se vrši učitavanje niza i ispisivanje rezultata makro020.xls


Download ppt "MAŠINSKI FAKULTET KRAGUJEVAC VisualBasic for Aplication"

Similar presentations


Ads by Google