Ugrás a fő tartalomra

VBA alapok 1

VBA : Visual Basic for Applications. 

 Az MS Office alkalmazásainak (Excel, Word, Access, Power Point, Outlook) programozási nyelve. Mivel a Microsoft saját alkalmazásaihoz készítette a VBA-t.

A VBA kódok a program műveletek olyan csoportja, amely parancsok sorozatát hajtja végre egy alkalmazáson (pl. Excelen) belül. 

Ha ehhez a VBA nyelvet használja, nevezhetjük VBA kódnak is. A makrók segítségével automatizálhatunk ismétlődő feladatokat, de akár saját függvényeket is írhatunk.


VBA-t hordozó excel állomány formátumok:
– „Makróbarát Excel-munkafüzet” (.xlsm) kiterjesztés a makró változatot
– „Bináris Excel-munkafüzet” (.xlsb) ami szintén képes makrókat kezelni
– „Excel-munkafüzet” (.xlsx) kiterjesztés a makrómentes változatot jelenti

Fontos tudnivaló: 

Ha lefuttatunk egy makrót, akkor a Visszavonás (Undo) gomb nem működik, vagyis nem lehet visszavonni a műveletet, illetve visszaállítani a makró előtti állapotot, kivéve ha az ehhez szükséges kódot mi magunk külön meg nem írjuk. Ezért a makró futtatása előtt készítsünk másolatot a munkafüzetről vagy legalább mentsük el.



Egy egyszerű kód minta
Range("B4").Value = 42     ' ez a parancs a kód a B4-es tartomány értékét állítja 42-re.


Kód felépítése
Sub Beallit()
    Range("b4").Value = 42
End Sub

Vagy

Function beallit(Ertek As Integer)
Ertekes = 42                'minden számra a 42 számot adja vissza
End Function



VBA felület






1: Project (Projekt) ablak: 
itt található az összes megnyitott munkafüzet, fa szerkezetű elrendezésben. 
Ezen belül három almappa található:
Microsoft Excel Object (Excel objektumok): ezen belül lehet „ThisWorkbook” vagy az egyes munkalapokhoz (itt: „Sheet1”) kapcsolódó kódolási hely
Űrlapok (Forms)
Modulok (Modules): itt a „Module1”. A modul mappa tartalmazza a makrókat és felhasználói függvényeket.

2: Properties (tulajdonságok) ablak: 
az objektumok, modulok, űrlapok bizonyos tulajdonságait itt tudjuk megváltoztatni, mint pl. a modul nevét 

3: A kódolási terület: 
itt történik a VBA kód vagyis makró létrehozása, szerkesztése. Ha „Subroutine”-ról vagyis szubrutinról van szó, akkor a makrónak „Sub”-bal kell kezdődnie és „End Sub”-bal végződnie, mint a fenti kép 1-es pontjánál. Ha pedig Functionról vagyis felhasználói függvényről van szó, akkor a makrónak „Function”-nal kell kezdődnie és „End Function”-nal végződnie.

4: Immediate ablak: 
a makró lefutásának eredményeit tudjuk itt ellenőrizni, illetve utasításokat is végrehajthatunk közvetlenül

5: Watches (Figyelő) ablak: 
makrók nyomon követésére, változók értékeinek megfigyelésére és hibakeresésre használható

Makrót kétféleképpen lehet létrehozni: rögzíteni vagy kreálni.


Makrórögzítő – előnyök:
Semmilyen VBA tudás (vagy legfeljebb minimális) kell a használatához, illetve ahhoz, hogy a tevékenységeket makrók formájában kapjuk vissza
a VBA guruk is használják: ha ellenőrizni akarnak egy parancsot, sokszor egyszerűbb a makrót rögzíteni, mint a súgót vagy a Google-t használni
Word-höz is elérhető


Makrórögzítő – hátrányok:
Csak az Excel-nél és a Word-nél áll rendelkezésre
Felesleges dolgokat is rögzít, mint a görgetéseket, cellán való kattintásokat. Ennek eredményeképpen igen terjedelmes kódot kapunk, amit egyszerűsítenünk kell
Egyes tevékenységeket nem rögzít
Ismétlődő (ciklusos) feladatokat nem tudunk felvenni
Csak szubrutint rögzíthetünk vele, felhasználói függvényt nem
Komplex kódokat ne ezzel generáljunk


Objektum szerkezet



Egy objektum teljes leírója elég hosszú tud lenni:

Application.Workbooks(“KL_makro_alapok.xlsm”).Worksheets(“Munka1”).Range (“A1”)


Objektum jellemzők


Tulajdonság (Property):

Az objektumot jellemzi, illetve információkat tárol róla, mint a munkalap neve vagy a cella színe. 


Range("A1").Interior.Color



Eljárás (Method):

Olyan tevékenység, melyet az objektum végre tud hajtani. Pl. az A42-es cella kijelölése:


Range("A42").Select





Megjegyzések