Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. Excel VII. Visual Basic programozás alapok A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok Utasítások
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ó 2. 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
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 3. 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.
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 4. 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
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 5. 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.
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 6. 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.
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 7. 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.
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 8. 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)
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 9. 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
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 10. 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
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 12. 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
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 13. 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
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 14. 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
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 15. 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.