A legjobb VBA-útmutató (kezdőknek), amire szüksége lesz

A szinte az összes Microsoft Office -terméken futó VBA programozási(VBA programming) platform az egyik leghatékonyabb eszköz, amellyel bárki javíthatja a termékek használatát.

Ez a kezdőknek szóló VBA -útmutató bemutatja, hogyan adhatja hozzá a Fejlesztői(Developer) menüt az Office -alkalmazáshoz, hogyan léphet be a VBA -szerkesztő ablakába, és hogyan működnek az alapvető VBA - utasítások és -hurkok, hogy elkezdhesse használni a VBA -t Excelben(Excel) , Wordben(Word) , Powerpointban(Powerpoint) , Outlook és OneNote .

Ez a VBA -útmutató a (VBA)Microsoft Office termékek legújabb verzióját használja . Ha korábbi verziója van, akkor némi eltérést tapasztalhat a képernyőképekhez képest.

A VBA-szerkesztő engedélyezése és használata(How To Enable & Use The VBA Editor)

Az ebben az útmutatóban használt Office -termékek bármelyikében észreveheti, hogy nem rendelkezik a hivatkozott Fejlesztői(Developer) menüvel. A fejlesztői menü csak az Excelben(Excel) , a Wordben(Word) , az Outlookban(Outlook) és a Powerpointban(Powerpoint) érhető el . A OneNote(OneNote) nem kínál eszközt a VBA -kód alkalmazáson belüli szerkesztésére, de továbbra is hivatkozhat a OneNote API -ra, hogy más Office - programokból  kommunikáljon a OneNote -tal.(OneNote)

Ennek módját a hamarosan megjelenő Advanced VBA(Advanced VBA) útmutatónkból megtudhatja .

  • A Fejlesztői(Developer) menü bármely irodai termékben engedélyezéséhez válassza a Fájl(File) menüt, majd a bal oldali navigációs menü  Beállítások elemét.(Options)
  • Ekkor megjelenik egy Beállítások(Options) menü előugró ablaka. Válassza a Szalag testreszabása(Customize Ribbon) lehetőséget a bal oldali navigációs menüben.

A bal oldali lista az adott Office(Office) - alkalmazásban elérhető összes menüt és menüparancsot tartalmazza . A jobb oldali lista az aktuálisan elérhető vagy aktivált listát tartalmazza.

  • A jobb oldali listában látnia kell a Fejlesztőt(Developer) , de nem lesz aktiválva. Csak(Just) jelölje be a jelölőnégyzetet a Fejlesztői(Developer) menü aktiválásához.

  • Ha nem látja a Fejlesztő(Developer) elérhető a jobb oldalon, akkor módosítsa a bal Parancsok kiválasztása(Choose commands) lehetőséget a legördülő menüből Minden parancsra(All Commands) . Keresse meg a Fejlesztőt(Developer) a listában, és válassza a Add>> elemet középen, hogy hozzáadja a menüt a szalaghoz(Ribbon) .
  • Ha végzett, válassza az OK lehetőséget .
  • Ha a Fejlesztő(Developer) menü aktív, visszatérhet az alkalmazás főablakába, és a felső menüből  válassza a Fejlesztő lehetőséget.(Developer)
  • Ezután válassza a Kód megtekintése(View Code) lehetőséget a szalag Vezérlők(Controls) csoportjában a VBA - szerkesztő ablakának megnyitásához.

  • Ezzel megnyílik a VBA szerkesztő ablaka, ahol beírhatja a kódot, amelyet a következő részben tanulni fog.

  • Próbálja meg hozzáadni a Fejlesztői(Developer) menüt néhány olyan Office - alkalmazáshoz, amelyet minden nap használ. Ha már kényelmesen megnyitja a VBA -szerkesztő ablakát, folytassa az útmutató következő részével.

Általános VBA programozási tippek kezdőknek(General VBA Programming Tips for Beginners)

Észre fogja venni, amikor a VBA -szerkesztő megnyílik, a bal oldali panel navigációs beállításai az egyes Office -alkalmazásokban eltérőek.

Ennek az az oka, hogy az elérhető objektumok, amelyekben elhelyezheti a VBA -kódot, attól függenek, hogy milyen objektumok vannak az alkalmazásban. Például az Excelben (Excel)VBA -kódot adhat hozzá munkafüzet- vagy lapobjektumokhoz. A Wordben (Word)VBA -kódot adhat a dokumentumokhoz. Powerpointban(Powerpoint) csak modulokhoz .

Szóval ne lepődj meg a különböző menükön. A VBA -kód szerkezete és szintaxisa minden alkalmazásban azonos. Az egyetlen különbség az objektumok között van, amelyekre hivatkozhat, és a VBA(VBA) -kódon keresztül ezeken az objektumokon végrehajtható műveletekben .

Mielőtt belemerülnénk a különböző objektumokba és műveletekbe, amelyeket VBA -kóddal végezhet, először nézzük meg a (VBA)VBA -kód írásakor használható leggyakoribb VBA -struktúrát és szintaxist .

Hová tegye a VBA kódot(Where To Put VBA Code)

Amikor a VBA -szerkesztőben tartózkodik, a szerkesztőablak tetején található két legördülő mezőben válassza ki, hogy melyik objektumhoz szeretné csatolni a kódot, és mikor szeretné futtatni a kódot.

Például , ha az Excelben a (Excel)Munkalap(Worksheet) és az Aktiválás(Activate) lehetőséget választja , a kód a munkalap megnyitásakor futni fog. 

A VBA(VBA) -kód aktiválására használható egyéb munkalapműveletek közé tartozik a munkalap megváltozása, bezárása (inaktiválása), a munkalap számításának futtatása stb.

Amikor VBA -kódot ad hozzá a szerkesztőhöz, mindig ügyeljen arra, hogy a VBA -kódot az objektumra helyezze, és a megfelelő műveletet használja a kód aktiválásához.

VBA IF nyilatkozatok(VBA IF Statements)

Az IF utasítás ugyanúgy működik VBA -ban, mint bármely más programozási nyelvben.(VBA)

Az IF utasítás első része azt vizsgálja, hogy egy feltétel vagy feltételkészlet igaz-e. Ezeket a feltételeket összekapcsolhatja egy ÉS(AND) vagy VAGY operátorral, hogy összekapcsolja őket.

Ilyen például annak ellenőrzése, hogy egy érdemjegy a táblázatban a „megfelelt” érdemjegy felett vagy alatt van-e, és a megfelelt vagy nem megfelelő állapotot hozzárendeljük egy másik cellához.

If Cells(2, 2) > 75 Then Cells(2, 3) = “Pass” Else Cells(2, 3) = “Fail”

Ha nem szeretné, hogy a teljes utasítás egyetlen sorban legyen, akkor több sorra bonthatja úgy, hogy a sorok végére egy „_” szimbólumot ad.

If Cells(2, 2) > 75 Then _
Cells(2, 3) = “Pass”  Else _
Cells(2, 3) = “Fail”

Ennek a technikának a használata gyakran sokkal könnyebbé teheti a kód olvasását és hibakeresését.

VBA a következő ciklusokhoz(VBA For Next Loops)

Az IF utasítások nagyszerűek az egyes összehasonlításokhoz, mint például a fenti példa egyetlen cellára nézve. De mi van akkor, ha egy teljes cellatartományt szeretne végigpörgetni, és mindegyikre ugyanazt az IF utasítást szeretné végrehajtani?

Ebben az esetben szükséged lesz egy FOR hurokra. 

Ehhez egy tartomány hosszát kell használnia, és ezen a hosszon át kell lépnie az adatokat tartalmazó sorok számával.

Ehhez meg kell határozni a tartományt és a cellaváltozókat, és át kell lépni rajtuk. Meg kell határoznia egy számlálót is, hogy az eredményeket a megfelelő sorba tudja írni. Tehát a VBA -kódban először ez a sor lesz.

Dim rng As Range, cell As Range
Dim rowCounter mint Integer(Dim rowCounter as Integer)

Határozza meg a tartomány méretét az alábbiak szerint. 

Set rng = Range(“B2:B7”)
rowCounter = 2

Végül létrehozhatja a FOR ciklust, hogy átlépjen az adott tartomány minden celláján, és elvégezze az összehasonlítást.

For Each cell In rng
   If cell.Value > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"

   rowCounter = rowCounter + 1

Next cell

Ha ez a VBA-szkript(VBA script) fut, az eredményeket a tényleges táblázatban láthatja.

VBA While Loops

A While Loop utasítások sorozatán is áthalad, csakúgy, mint a FOR ciklus, de a ciklus folytatásának feltétele egy feltétel, amely igaz marad.

Például ugyanezt a FOR ciklust fentebb írhatja WHILE ciklusként, egyszerűen a rowCounter változó használatával az alábbiak szerint.

While rowCounter < rng.Count + 2
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   rowCounter = rowCounter + 1
Wend

Megjegyzés: az rng.Count + 2 lezáró korlát szükséges, mert a sorszámláló 2-vel kezdődik, és a 7. sorban kell végződnie, ahol az adatok véget érnek. A tartomány (B2:B7) száma azonban csak 6, és a While ciklus csak akkor ér véget, ha a számláló NAGYOBB(GREATER) a számlálónál – tehát az utolsó sor Számláló értékének 8-nak (vagy rng.Count + 2-nek) kell lennie.

A While ciklust a következőképpen is beállíthatja:

While rowCounter <= rng.Count + 1

A tartományszámot (6) csak 1-gyel növelheti, mert amint a rowCounter változó eléri az adatok végét (7. sor), a ciklus befejeződhet.

VBA Do While és Do Until ciklusok(VBA Do While and Do Until Loops)

A Do While és a Do Until ciklusok közel azonosak a While ciklusokkal, de kissé eltérően működnek.

  • A While ciklus(While Loop) ellenőrzi, hogy egy feltétel igaz-e a ciklus elején.
  • A Do-While ciklus(Do-While Loop) a ciklus utasításainak végrehajtása után ellenőrzi, hogy egy feltétel igaz-e.
  • A Do-Until Loop ellenőrzi, hogy a feltétel továbbra is hamis-e a ciklus végrehajtása után.

Ebben az esetben a fenti While ciklust az alábbiak szerint kell átírnia Do-While ciklusként.

Do
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   
   rowCounter = rowCounter + 1
Loop While rowCounter < rng.Count + 2

Ebben az esetben a logika nem nagyon változik, de ha meg akar győződni arról, hogy a logikai összehasonlítás az összes utasítás lefutása után megtörténik (lehetővé téve, hogy mindegyik legalább egyszer lefusson, függetlenül attól, hogy mit), akkor egy Do-While vagy Do-Until ciklus a megfelelő lehetőség.

VBA Select Case Statements

Az utolsó típusú logikai utasítás, amelyet meg kell értenie a VBA -kód strukturálásához, a Select Case utasítások.

A fenti példa alapján tegyük fel, hogy szeretne egy olyan minősítési módszert, amely nem csak a sikertelenség. Ehelyett egy betűosztályzatot szeretne hozzárendelni A-tól F-ig.

Ezt a következő Select Case(Select Case) utasítással teheti meg :

For Each cell In rng
   
   Select Case cell

   Case 95 To 100
      Cells(rowCounter, 3) = "A"
   Case 85 To 94
      Cells(rowCounter, 3) = "B"
   Case 75 To 84
      Cells(rowCounter, 3) = "C"
   Case 65 To 74
      Cells(rowCounter, 3) = "D"
   Case 0 To 64
      Cells(rowCounter, 3) = "F"
   End Select

   rowCounter = rowCounter + 1

Next cell

A VBA -szkript lefutása után kapott táblázat az alábbihoz hasonlóan néz ki.

Most már mindent tud, amit tudnia kell a VBA használatának megkezdéséhez Microsoft Office alkalmazásaiban.



About the author

Számítástechnikai szakértő vagyok, több mint 10 éves tapasztalattal, és arra specializálódtam, hogy segítsek az embereknek az irodájukban lévő számítógépeik kezelésében. Cikkeket írtam olyan témákban, mint az internetkapcsolat optimalizálása, a számítógép beállítása a legjobb játékélmény érdekében stb. Ha bármiben szeretnél segítséget kérni munkáddal vagy magánéleteddel kapcsolatban, én vagyok a megfelelő személy!



Related posts