180 likes | 406 Views
Array(). Sub kuu() Dim kuud, jkn kuud = Array("Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", _ "Juuli", "August", "September", "Oktoober", "Movember", "Detsember") jkn = InputBox("sisesta mitmes kuu") MsgBox kuud(jkn - 1) End Sub. Dialog(s) Dialoogiboks(id). Application
E N D
Array() Sub kuu() Dim kuud, jkn kuud = Array("Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", _ "Juuli", "August", "September", "Oktoober", "Movember", "Detsember") jkn = InputBox("sisesta mitmes kuu") MsgBox kuud(jkn - 1) End Sub
Dialog(s) Dialoogiboks(id) Application Rakendus CommandBar(s) Korralduseriba(d) Chart(s) Diagramm(id) Workbook(s) Töövihik(ud) Window(s) Aken/Aknad ChartObject(s) Diagrammiobjekt(id) Worksheet(s) Tööleht(ed) Shape(s) Kujund(id) Range Lahtriplokk Exceli objektid Omadused (properties) identifitseerivad objekti ning iseloomustavad tema struktuuri, olekut, asukohta, väljanägemist jms. Meetodid (methods) määravad, milliseid tegevusi saab täita klassi kuuluv objekt. Sündmused (events) käivitavad tegevused ja on seotud objektidega
Viitamine objektidele • KollektsioonidSheets, Worksheets, Workbooks, Shapes, ... • klassi (kollektsiooni) nime abilSheets.Add tarv = Worksheets.Count • Kollektsioonide elemendid (objektid) • klassinimi (indeks või nimi)Workbooks("palk.xls"), Workbooks(2)Charts("diagr_1"), Shapes("Juku"), Shapes(13)
Lahtrid ja lahtriplokid • Range( lahtriviit ) • lahtriviit - nimi või aadress, tüüp - tekst • Range("algus"), Range("B3"), Range(lah2) • Cells(rn, vn) • rn - reanumber, vn –veerunumber, tüüp - täisarv • Cells(1,1), Cells(1,5), Cells(5, 13), Cells(i, j) • Kombineeritud (suhteline) viit • Range(“A5”).Cells(2,2) – lahter aadressiga B6 • Cells(2,3).Cells(1,4) – lahter aadressiga F2
Objektid ja alamobjektid • Viitamist alustatakse ülemiselt tasemelt • Application.töövihik.tööleht.lahtriplokk Application.Workbooks(“hinnakiri.xls”).Worksheets(“puit”).Range(“hind”)
VBA laused • Omistamine • Setmuutuja = objekt • With viida osa lausedEnd With • WithWorksheets(“puit”) .Range(“puit”).Cells(i,i)=...End With
Näide Sub kordus() Set T = Range("A2:C6").CurrentRegion With T.Font .Name = "Arial" .Size = 20 .Bold = True .ColorIndex = 6 End With End Sub
Objektide omadused • Viitamine omadusele • objekt.omadusRange(“B4”).Value • UsedRange täidetud lahtrid • Omaduste väärtuste tüübid • arv, string, tõeväärtus, ... objekt • Omaduste väärtusi võib kasutada avaldises • A = Range(“B4”).Value+23 • Omadusele võib omistada väärtuse (v.a. Read-Only omadused) • Cells(i,j).Value=“Tekst” • Vaikimisi eeldatava omaduse nime ei pea kirjutama • Lahtril omadus Value
Meetodid • objekt.meetod [parameetrid] • Range(“B4”).SelectRange("B3:E13").SelectSelection.Copy Sheets("kuvarid").Range("A5")Range("A7:C107").ClearContents • Parameetrite nimekiri sõltub meetodist • Parameeter võib olla kohustuslik ja mittekohustuslik
Aktiivsuse omaduste kasutamine • ActiveWorkbook, ActiveSheet, ActiveCell,Selection – lahtripiirkond • Viitamisel alamobjektile võib ära jätta viidad ülemiste tasemete aktiivsetele objektidele • Range(“B3”) – viit aktiivse tööraamatu, aktiivse töölehe lahtrile • Meetod Select kehtestab aktiivse objekti • Range(“B3”).Select – nüüd võib viidata lahtrile ActiveCell...
Range-objekti mõned meetodid • Select - valimine • Range("tab1").Select • Clear - kustutada kõik • Range("B5:D20").Clear • ClearContents - kustutada sisu • Range("tab1").ClearContents • Delete nihe - eemaldada • Range("abi").Delete xlShiftUp • Insert nihe - lisamine • Range("A1:C3").Insert xlShiftDown • Copy [sihtkoht] - kopeerimine • Range("tab3").Copy Sheets(2).Range("C3") • Cut [sihtkoht] - lõikamine • Cells(5, 3).Cut
Näide: paus Sub paus(pp) Dim t t = Timer + pp Do DoEvents Loop Until Timer > t End Sub
Näide Sub Lenda() Dim juku, i Set juku = ActiveSheet.Shapes("juku") For i = 1 To 50 juku.IncrementLeft 5 juku.IncrementTop 6 paus 0.5 Next i juku.IncrementRotation 90 End Sub
Näide Sub Grid() Dim i, r, g, b For i = 1 To 10 r = Int(Rnd() * 255) g = Int(Rnd() * 255) b = Int(Rnd() * 255) ActiveWindow.GridlineColor = RGB(r, g, b) paus 1 Next i 'ActiveWindow.GridlineColor = 17 End Sub
Sub Päike() Dim a, x0, y0, x, y, t Sheets.Add.Select a = 3 For t = 0 To 20 Step 0.05 x0 = 150 y0 = 170 x = 150 + t * 5 * Cos(a * t) y = 170 + t * 5 * Sin(a * t) ActiveSheet.Lines.Add(x0, y0, x, y).Select x0 = x y0 = y Selection.ShapeRange.Line.ForeColor.SchemeColor = Int(Rnd() * 10) Next t Cells(1, 1).Select End Sub