a visual basic-kel megoldható feladatok típusai objektumok,...
TRANSCRIPT
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
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
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
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.
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…
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.
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.
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.
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)
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
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
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
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
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
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.