Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Excel VII. Visual Basic programozás alapok
A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok
Utasítások
Dr.Dudás László
0.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
1.
A Visual Basic-kel megoldható feladatok típusai
• Makró subrutinok írása a gyakran ismétlődő feladatok támogatására, a vezérlők képességeinek kibővítésére • Saját felhasználói függvények készítése, melyek az Excelből a beépített függvényekkel azonos módon használhatók • Saját menük és Eszközkészletek létrehozása az Excel alkalmazásunk professzionálissá tételére
• Kapcsolat kiépítése és együttműködés más programokkal, mit pl. a Matlab • Külső fájlokhoz input/output felület készítése.
Forrás: Yongjun Chen: An Introduction to VBA
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Objektumok, változók • Objektumok célja: a korszerű programozásmódszertan realizálása
• Objektumok megjelenése: majdnem minden objektum, pl. munkafüzet, munkalap, cellatartomány, cella, ábrák, stb. Az objektumok jellemzőit módosíthatjuk, utasításokat hajthatunk rajtuk végre a metódusaik hívásával, egyes eseményeikre reagálhatunk. • A Cells objektum: - Egyetlen cella kezelésére szolgál - Formája: Cells(sor, oszlop) - A cella értékét adja, vagy értéket adva neki, azt a cella felveszi Cells(1,1) = Cells(12, ”B”) Cells(5, 3+k) = 25*valt - Utasításokat adhatunk neki: kiválasztás Cells(3, ”B”).Select
2.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Objektumok, változók .. • A Range objektum: - Egy, vagy több cellából álló tartomány kezelésére szolgál - Formája: Range(tartománymegadás) Range(”B1:E4”) Range(Cells(5,3), Cells(7,9)) Range(”G7”) - Értéket adva neki, azt a cellái felveszik Range(”B1:D7”). Value = 111 - Celláinak tartalma törölhető Range(”B1:D7”). ClearContents - Utasításokat adhatunk neki: kiválasztás Range(”C2:D9”).Select képletmegadás Range(”B2:F7”).Formula = valt+4 objektum törlése Range(”C4:G9”).Clear - Beíráskor a . megadása után megjelenik a választható lehetőségek listája.
3.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Objektumok, változók .. • Az ActiveCell objektum: - Az aktuális cellát, cellatartományt jelenti, Range típusú - Értéket adva neki, azt a cellái felveszik ActiveCell.Value = 111 - Celláinak tartalma törölhető ActiveCell.ClearContents - Utasításokat adhatunk neki: képletmegadás ActiveCell.Formula = valt+6 objektum törlése ActiveCell.Clear relatív cellakijelölés ActiveCell.Offset(-1, 2).Value = "egy sorral feljebb, kettővel jobbra" - Beíráskor a . megadása után megjelenik a választható lehetőségek listája…
4.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Objektumok, változók .. • Változók - Értékek tárolására szolgálnak - Értéket kaphatnak, értéket reprezentálnak (balérték, jobbérték) valt = 5 valt2 = valt - Definiálása: Dim változónév As típus - Típusok Byte 0..255, egész Integer -32.768 .. 32.767, 4 bájt helyfoglalású egész Long 8 bájt helyfoglalású egész Single normál valós Double duplapontos, tudományos feladatokhoz Boolean logikai típus Date dátum típus String szöveges típus Variant az értékül adott kifejezésnek megfelelő típus.
5.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Objektumok, változók .. • Tömbök - Többdimenziós tárolók, vektorok, mátrixok - Az értékek azonos típusúak - Definiálása: Dim tömbnév(maxindex1, .. , maxindexN) As elemtípus - A kezdőindex a 0, ezért a méretek eggyel meghaladják a maxindexK értékeket!! - Példa: Dim HatelemuVektor( 5 ) As Single Dim Buvoskocka( 2, 2, 2 ) As String Dim Het_torpe( 6 ) As String - Létezik dinamikus tömblétrehozás és még futás közbeni átméretezés is.
6.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Alprogramok • Eljárás - Egy adott feladat kivitelezésére szolgáló, névvel, opcionális paraméterekkel rendelkező alprogram, lásd makró szubrutinok - Létrehozhatók manuálisan makrórögzítés üzemmódban, vagy megírhatók a Visual Basic editorában - Automatikus hívásuk általában vezérlőkkel történik - Futtatásuk Ctrl kód esetén a Ctrl+kód kombinációval, vagy az Alt+F8 billentyűkombinációval előhívható makróindítóval, vagy vezérlők útján.
7.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Alprogramok .. • Függvény - Egy adott típusú érték előállítására szolgáló, névvel, opcionális paraméterekkel rendelkező alprogram - Az Excelben elérhető több, mint 300 beépített függvényen túl a Visual Basic programjainkban is használható saját függvényeket is készíthetünk - Saját függvény definiálása: Function fvnév( paraméterek ) As típus függvénybelső és fvnév = kifejezés End Function - Példa: Function Terfogat( a As Double, b As Double, c As Double) As Double Terfogat = a*b*c End Function - A saját függvény meghívása megegyezik az Excel belső függvényeinek alkalmazásával, pl.: Dim T As Double T = Terfogat( 6.28, 4.234, 12.2)
8.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Utasítások • Ciklusszervezés - Általában tömbök elemein végzett, vagy ismétlődő műveletek elvégzésére - For ciklus: ha előre ismert az ismétlések száma - Szerkezete: For kezdőértékadás To végérték Step lépésnagyság ciklusmag Next ciklusváltozó - A Step elmaradhat, ha a lépésköz 1, ha van, lehet negatív is - Példa: Sub ForCiklus() Dim szum, i As Integer szum = 0 For i = 1 To 100 ‘ Összeg egytől százig szum = szum + i Next i End Sub
9.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Utasítások .. • Ciklusszervezés .. - Do While ciklus: ha előre nem ismert az ismétlések száma - Szerkezete: Do While feltétel ‘ Elöl tesztel ciklusmag Loop - Példa: Sub DoWhileCiklus() Dim szum, cella As Integer szum = 0 cella = Cells( 1, 1) Do While cella > 0 ‘ Összeg egytől százig szum = szum + 1 Cells( 1, 1) = Cells( 1, 1) - 1 cella = Cells( 1, 1) Loop End Sub
10.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Utasítások .. • Ciklusszervezés .. - Do Loop While ciklus: ha előre nem ismert az ismétlések száma, de legalább egy. - Szerkezete: Do ciklusmag Loop While feltétel - Példa: Sub DoLoopWhileCiklus() Dim szum, cella As Integer szum = 0 cella = Cells( 1, 1) Do ‘ Összeg egytől százig szum = szum + 1 Cells( 1, 1) = Cells( 1, 1) - 1 cella = Cells( 1, 1) Loop While cella > 0 End Sub
12.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Utasítások .. • Elágazásszervezés - Az elágazásszervező utasítások révén lesz a program döntésképes - If utasítás: ha a feltétel teljesül, az utasítások végrehajtódnak, egyébként kihagyódnak - Szerkezete: If feltétel utasítások End If - Példa: Sub If_elagazas() Dim cella As Integer cella = Cells( 1, 1) If cella MOD 2 = 1 ‘ páratlan Cells( 1, 1) = 2 * Cells( 1, 1) End If End Sub
13.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Utasítások .. • Elágazásszervezés - Az elágazásszervező utasítások révén lesz a program döntésképes - If Else utasítás: ha a feltétel teljesül, az If utáni utasítások végrehajtódnak, egyébként az Else utáni utasítások hajtódnak végre - Szerkezete: If feltétel utasítások1 Else utasítások2 End If - Példa: Sub If_Else_elagazas() ‘ paritásváltás Dim cella As Integer cella = Cells( 1, 1) If cella MOD 2 = 1 Cells( 1, 1) = 2 * Cells( 1, 1) Else Cells( 1, 1) = Cells( 1, 1) / 2 End If End Sub
14.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Utasítások ..
• Mind a ciklusszervező, mind az elágazásszervező utasítások a bemutattaktól gazdagabbak, sokszínűbbek. • A bemutatott ismeretek csak az elinduláshoz elegendőek, a Visual Basic lehetőségei jóval gazdagabbak.
15.