230 likes | 347 Vues
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.
E N D
VBA gyorstalpaló Benczúr Zsoltbenczurzs@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
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 A = 2+3 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 = 5 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 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
ForNext • 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
ForNext példa 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
ForNext j = 0 For i = 1 to 3 j = j +1 Next i ’ Mennyi lesz a j ? j = 0 j = j +1 j = j +1 j = j +1 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
ForNext nehezebb példa j = 0 For i = 1 to 3 j = j + i Next i ’ Mennyi lesz a j ? j = 0 j = j +i j = j +i 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
Ifthenelse • Legegyszerűbb formája: If 5 < 6 then Msgbox "5 nem nagyobb, mint 6" End if
Ifthenelse 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
Ifthenelse 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
Doloopwhile • 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 loopwhile i <= 10
Doloopwhile • Egy érthető példa (érdemes kipróbálni) Do valasz = MsgBox("Megörjítelek, folytassam?", vbYesNo) LoopWhilevalasz = 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