A szinte az összes Microsoft Office termékben futó VBA programozás platform az egyik legerősebb eszköz, amelyet bárki felhasználhat e termékek használatának fokozására.
Ez a VBA útmutató A kezdők megmutatják, hogyan kell hozzáadni a Fejlesztő menüt az Office alkalmazáshoz, hogyan kell belépni a VBA szerkesztőablakba, és hogyan működnek az alapvető VBA nyilatkozatok és hurkok, hogy elinduljon a VBA használatával az Excel, a Word, a Powerpoint, az Outlook és a OneNote alkalmazásban. .
Ez A VBA útmutató a Microsoft Office termékek legújabb verzióját használja. Ha van egy korábbi verziója, akkor némi eltérést tapasztalhat a képernyőképektől.
A VBA-szerkesztő engedélyezése és használata
Az Office bármelyikében Ha ebben az útmutatóban használt termékeket használ, észreveheti, hogy nincs a hivatkozott Fejlesztői menü. A fejlesztői menü csak az Excel, Word, Outlook és Powerpoint fájlokban érhető el. A OneNote nem kínál eszközt a VBA-kód szerkesztéséhez az alkalmazáson belül, de hivatkozhat a OneNote API-ra, hogy interakcióba léphessen más Office programok OneNote-jával.
Ezt megtudhatja a közelgő Speciális VBA útmutatóban.
A bal oldali lista tartalmazza az adott Office alkalmazásban elérhető összes menüt és menüparancsot. A jobb oldalon található listák jelenleg elérhetők vagy aktívak.
In_content_1 all: [300x250] / dfp: [640x360]->Általános VBA programozási tippek kezdőknek
Megfigyelheti, amikor a VBA szerkesztő megnyílik, a bal oldali panelen lévő navigációs beállítások különböznek az Office alkalmazásoktól.
Ennek oka az, hogy a rendelkezésre álló objektumok, ahová VBA-kódot helyezhetnek, attól függ, hogy milyen objektumok vannak az alkalmazásban. Például az Excel programban VBA-kódot adhat a munkafüzethez vagy a lapobjektumokhoz. A Word alkalmazásban hozzáadhat VBA-kódot a dokumentumokhoz. A Powerpoint alkalmazásban csak a modulokra.
Tehát ne lepődj meg a különféle menükkel. A VBA kód felépítése és szintaxisa minden alkalmazásban azonos. Az egyetlen különbség az objektumok, amelyekre hivatkozhat, és azok a műveletek, amelyeket ezekkel az objektumokkal a VBA-kódon keresztül végrehajthat. nézd meg a leggyakoribb VBA-struktúrát és szintaxist, amelyet VBA-kód írásakor használhat.
Hova kell elhelyezni a VBA-kódot
A VBA szerkesztőben a szerkesztési ablak tetején található két legördülő mezőt kell kiválasztania ahhoz, hogy melyik objektumhoz csatolja a kódot, és mikor szeretné futtatni a kódot.
Például a Az Excel, ha a Munkalapés az Aktiváláslehetőséget választja, akkor a kód fut a munkalap megnyitásakor.
Egyéb munkalap A VBA-kód elindításához felhasználható műveletek közé tartozik a munkalap megváltoztatása, bezárása (deaktiválása), a munkalap-számítás futtatása és így tovább.
A VBA-kód hozzáadásakor a szerkesztőben feltétlenül helyezze el a VBA-kódot az objektumra, és a helyes művelettel végezze el a kód aktiválását.
VBA IF-utasítások
IF Az utasítás a VBA-ban működik, csakúgy, mint bármely más programozási nyelven.
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 egy ÉS vagy VAGY operátor csatlakoztathatja, hogy összekapcsolják őket. sikertelen állapot egy másik cellára.
Ha cella (2, 2)>75, akkor cella (2, 3) = „átadja” a többi cellát (2, 3) = „sikertelen”>
Ha nem akarja, hogy a teljes utasítás egyetlen sorban legyen, akkor több sorra oszthatja, ha a sor végére egy „_” szimbólumot ad.
Ha cella (2, 2)>75, akkor _
Cella (2, 3) = “Pass” Else _
Cells (2, 3) = “Fail”
Ennek a technikának a használata gyakran sokkal könnyebbé teszi a kód olvasását és hibakeresését.
VBA a következő hurkokhoz
Az IF állítások nagyszerűek az egyes összehasonlításokhoz, mint például a fenti példa az egyetlen cellára nézve. De mi van, ha át akarja vonni a cellák teljes tartományát, és mindegyiknél ugyanazt az IF-utasítást használja?
Ebben az esetben FOR-hurokra van szüksége.
Ehhez egy tartomány hosszát kell használnia, és ezt a hosszúságot az adatot tartalmazó sorok számával kell áthúznia.
Ehhez szüksége van hogy meghatározza a tartományt és a cellákat, és áthúzza őket. Meg kell határoznia egy számlálót is, hogy az eredményeket a megfelelő sorba tudja kiadni. Tehát a VBA-kódjában először ezt a sort szerepelne.
Eltávolítás mért tartományként, cella mint tartomány
Mérettelen sorCounter egész számként
Az alábbiak szerint határozza meg a tartomány méretét.
Set rng = Range (“B2: B7”)
rowCounter = 2
Végül létrehozhat a FOR-hurok segítségével lépjen át az adott tartomány minden celláján, és elvégezze az összehasonlítást.
For Each cell In rngIf cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell
Amint ez a VBA szkript fut, megjelenik a eredményt ad a tényleges táblázatban.
VBA, míg hurkok
A Míg a hurok egy utasítások sorozatán is végigmegy, akárcsak a FOR hurok, de a folytatódó hurok feltétele továbbra is fennmarad. igaz.
Például ugyanazt a FOR-hurkot felírhatja fent, mint WHILE hurkot, egyszerűen a rowCounter változó használatával, az alábbiak szerint.
While rowCounter < rng.Count + 2If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend
Megjegyzés: a rng.Count + 2befejezési határértékre van szükség, mivel a sorszámláló 2-nél kezdődik, és a 7. sornak kell végződnie, ahol az adatok végződnek. A tartomány (B2: B7) száma azonban csak 6, és a But ciklus csak akkor fejeződik be, ha a számláló NAGYABB, mint a számláló - tehát az utolsó rowCounter értéknek 8-nak (vagy rng.Count + 2) kell lennie.
A But hurkot az alábbiak szerint is beállíthatja:
Miközben a rowCounter <= rng.Count + 1
csak növelje meg a tartomány számát (6) 1-rel, mert mihelyt a rowCounter változó eléri az adatok végét (7. sor), a hurok befejeződik. / strong>
Do közben és addig, amíg a hurkok majdnem megegyeznek a Some hurkokkal, de kissé eltérő módon működnek.
Ebben az esetben a t he Míg a fenti hurok az alábbiak szerint, mint egy Do-while hurok.
DoIf 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 változik nagyon, de ha szeretné megbizonyosodni a logikáról Az összehasonlítás az összes állítás futtatása után történik (lehetővé téve, hogy mindegyikük futtasson függetlenül attól, hogy mi történik legalább egyszer), majd a Do-while vagy a Do-till hurok a megfelelő lehetőség.
VBA-esettanulmányok
A VBA-kód szerkezetének megkezdéséhez megértendő logikai utasítás végső típusa a Select Case utasítások.
Tekintettel a fenti példára, tegyük fel, hogy olyan osztályozási módszert szeretne kapni, amely nem csupán a sikertelen. Ehelyett az A-tól F-ig szeretne betűosztályt kiosztani.
Ezt megteheti a következő Select Case utasítással:
For Each cell In rngSelect 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 kapott táblázat ez után a VBA szkript futtatása az alábbiak szerint néz ki.
Most már mindent tudsz, amit tudnod kell a VBA használatához a Microsoft Office alkalmazásokban.