VBA gyorstalpaló

Download Report

Transcript VBA gyorstalpaló

VBA gyorstalpaló
Benczúr Zsolt
[email protected]
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
A = 2+3
1. Lépés jobb oldal
A = 2+3
2. Lépés bal oldal
A = 2+3
3. Lépés a kettő együtt
A=5
5
Önmagát növelő változó
A=5
A=A+1
1. Lépés jobb oldal
A=A+1
2. Lépés bal oldal
A = A+1
3. Lépés a kettő együtt
A=6
6
Két változó összege
A=5 B=7
A=A+B
1. Lépés jobb oldal
A=A+B
2. Lépés bal oldal
A = A+B
3. Lépés a kettő együtt
A = 12
5+7 = 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
Kezdeti értékadás
j=0
A teljes ciklus
For i = 1 to 3
j = j +1
Ciklusmag, ezt
ismétli
Next i
’ Mennyi lesz a j ?
For Next
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 
For Next nehezebb példa
j=0
For i = 1 to 3
j=j+i
Next i
’ Mennyi lesz a j ?
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
j=0
j = j +i
j = j +i
j = j +i
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
Mivel a feltétel
hamis, átugorjuk
az igaz ágat
If then else
If 5 > 6 then
Msgbox "6 nem nagyobb, mint 5"
Else
Msgbox "6 nagyobb, mint 5"
End if
If then else
Mivel a feltétel
igaz, átugorjuk a
hamis ágat
If 6 > 5 then
Msgbox "5 nem nagyobb, mint 6"
Else
Msgbox "5 nagyobb, mint 6"
End if
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
Form elemekkel
Cellákkal
A program „háttér” működése