Benczúr Zsolt benczurzs@gmail.com VBA gyorstalpaló Benczúr Zsolt benczurzs@gmail.com
Elméleti fogalmak Makró rögzítés Makró lejátszás Modules Változók fogalma Objektum hierarchia ActiveX-vezérlők ( gomb, textbox, …. ) ActiveX-vezérlők paraméterei
VBA parancsok
Változók Egy doboz, ami értéket vehet fel, amit beletöltünk, azt vissza tudja adni
Változók, értékadás A = 2 A értéke 2-lesz
Bonyolultabb kifejezés 1. Lépés jobb oldal A = 2+3 5 2. Lépés bal oldal A = 2+3 3. Lépés a kettő együtt A = 5
Önmagát növelő változó A = A + 1 1. Lépés jobb oldal A = A + 1 6 2. Lépés bal oldal A = A+1 3. Lépés a kettő együtt A = 6
Két változó összege A = 5 B = 7 A = A + B A = A + B 5+7 = 12 A = A+B 1. Lépés jobb oldal A = A + B 5+7 = 12 2. Lépés bal oldal A = A+B 3. Lépés a kettő együtt A = 12
For Next Mire jó ? Rögzített lépésszámú ciklus Legegyszerűbb alakja: 1-től 3-ig lépteti i-t For i = 1 to 3 …. Next i
For Next példa j = 0 For i = 1 to 3 j = j +1 Next i Kezdeti értékadás j = 0 For i = 1 to 3 j = j +1 Next i ’ Mennyi lesz a j ? A teljes ciklus Ciklusmag, ezt ismétli
For Next j = 3 j = 0 For i = 1 to 3 j = j +1 0. lépés Next i j = 0 ’ Mennyi lesz a j ? 0. lépés j = 0 1. Ciklus lépés j = j+1 j = 1 2. Ciklus lépés j = j+1 j = 2 3. Ciklus lépés j = j+1 j = 3 j = 3
For Next nehezebb példa j = 0 For i = 1 to 3 j = j + i Next i ’ Mennyi lesz a j ? j = j +i Figyelem, nem 1-el növeljük j-t, hanem i-vel !! 0. lépés j = 0 1. Ciklus lépés i = 1 j = j+i j = 0+1 1 2. Ciklus lépés i = 2 j = j+i j = 1+2 3 3. Ciklus lépés i = 3 j = j+i j = 3+3 6 j = 6
If then else Legegyszerűbb formája: If 5 < 6 then Msgbox "5 nem nagyobb, mint 6" End if
If then else If 5 > 6 then Msgbox "6 nem nagyobb, mint 5" Else Mivel a feltétel hamis, átugorjuk az igaz ágat If 5 > 6 then Msgbox "6 nem nagyobb, mint 5" Else Msgbox "6 nagyobb, mint 5" End if
If then else If 6 > 5 then Msgbox "5 nem nagyobb, mint 6" Else Msgbox "5 nagyobb, mint 6" End if Mivel a feltétel igaz, átugorjuk a hamis ágat
Do loop while Addig ismétli, amíg igaz a feltétel. A következő kód úgy viselkedik, mint egy for i = 1 to 10 i = 0 Do i = i + 1 loop while i <= 10
Do loop while Egy érthető példa (érdemes kipróbálni) Do valasz = MsgBox("Megörjítelek, folytassam?", vbYesNo) Loop While valasz = vbYes MsgBox "Szia"
Msgbox és paraméterei Ha nem kérünk információt a futásáról: Msgbox "üzenet" Ha kérünk információt a futásáról: valasz = Msgbox("üzenet") Vajon mi a valasz értéke most ? Milyen gombra lett kattintva ? vbOK
Msgbox és paraméterei Leggyakoribb paraméterek valasz = MsgBox("üzenet", vbYesNo) valasz = MsgBox("üzenet", vbYesNoCancel) valasz = MsgBox("üzenet", vbOKCancel) valasz = MsgBox("üzenet", vbQuestion) valasz = MsgBox("üzenet", vbInformation) valasz = MsgBox("üzenet", vbOKOnly)
Msgbox és paraméterei 3. paramétere a title, a kék címsorban jelenik meg valasz = MsgBox("üzenet", vbOKCancel, "fejléc")
Inputbox és paraméterei Mindig van visszatérési értéke ! valasz = inputbox("számot adj", "cím", 10)
Cella kijelölések További nagyon jó leírás a moodle-on található. Cells, Range
Mi is történik ? Kommunikálás a felhasználóval A program „háttér” működése Form elemekkel Cellákkal