a visual basic-kel megoldható feladatok típusai objektumok,...

15
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

Upload: others

Post on 29-Jan-2020

7 views

Category:

Documents


1 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.