a visual basic-kel megoldható feladatok típusai objektumok,...
TRANSCRIPT
![Page 1: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/1.jpg)
Excel VII. Visual Basic programozás alapok
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0.
A Visual Basic-kel megoldható feladatok típusai
Objektumok, változók
Alprogramok
Utasítások
![Page 2: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/2.jpg)
A Visual Basic-kel megoldható feladatok típusai
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 1.
• 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, mint pl. a
Matlab
• Külső fájlokhoz input/output felület készítése.
Forrás: Yongjun Chen: An Introduction to VBA
![Page 3: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/3.jpg)
Objektumok, változók
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 2.
• 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
![Page 4: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/4.jpg)
Objektumok, változók ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 3.
• 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.
![Page 5: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/5.jpg)
Objektumok, változók ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 4.
• 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…
![Page 6: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/6.jpg)
Objektumok, változók ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 5.
• 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 -2 147 483 648 .. 2 147 483 647, 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.
![Page 7: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/7.jpg)
Objektumok, változók ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 6.
• 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.
![Page 8: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/8.jpg)
Alprogramok
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 7.
• 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.
![Page 9: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/9.jpg)
Alprogramok ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 8.
• 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)
![Page 10: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/10.jpg)
Utasítások
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 9.
• 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
![Page 11: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/11.jpg)
Utasítások ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 10.
• 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) ‘ Induló tartalma legyen 100
Do While cella > 0 ‘ Összeg egytől százig
szum = szum + cella
cella = cella - 1
Loop
End Sub
![Page 12: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/12.jpg)
Utasítások ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 12.
• 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) ) ‘ Induló tartalma legyen 100
Do ‘ Összeg egytől százig
szum = szum + cella
cella = cella - 1
Loop While cella > 0
End Sub
![Page 13: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/13.jpg)
Utasítások ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 13.
• 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 * cella
End If
End Sub
![Page 14: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/14.jpg)
Utasítások ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 14.
• 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 Then ‘ maradékos osztás
Cells( 1, 1) = 2 * cella
Else
Cells( 1, 1) = cella \ 2
End If
End Sub
![Page 15: A Visual Basic-kel megoldható feladatok típusai Objektumok, …ait.iit.uni-miskolc.hu/~dudas/SztEAok/ExcHaladoV.pdf · Excel VII. Visual Basic programozás alapok Alkalmazott Informatikai](https://reader033.vdocuments.pub/reader033/viewer/2022041707/5e456e319d1be617fb28b113/html5/thumbnails/15.jpg)
Utasítások ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 15.
• 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.