Útmutató a Visual Basic alkalmazásokhoz való használatához

A Visual Basic egyik legkiemelkedőbb tulajdonsága, hogy a teljes fejlesztőkörnyezet. Bármit is szeretne csinálni, van egy "íze" a Visual Basicnek, amely segít a munkában! A Visual Basic felhasználható asztali, mobil és távoli fejlesztésre (VB.NET), szkriptek készítésére (VBScript) és Office fejlesztésre (VBA !) Ha kipróbálta a VBA-t, és többet szeretne tudni arról, hogyan kell használni, ez az oktatóprogram az Ön számára. (Ez a kurzus a VBA verziójának a Microsoft Office 2010 verzióján alapul.)

Ha kurzust keres a Microsoft Visual Basic .NET-en, akkor a megfelelő helyet is megtalálja. Nézze meg: Visual Basic .NET 2010 Express - "A földről felfelé" bemutató

A VBA-t mint általános koncepciót ez a cikk tárgyalja. A VBA-nál több van, mint gondolnád! Cikkeket találhat az Office VBA nővérekről is:

Alapvetően kétféle módszerrel dolgozhatunk ki az Office alkalmazásokkal működő programokat: VBA és VSTO. 2003 októberében a Microsoft továbbfejlesztette a Visual Studio .NET professzionális programozási környezetet, Visual Studio Tools for Office - VSTO néven. De annak ellenére, hogy a VSTO kihasználja a .NET jelentős előnyeit az Office alkalmazásában, a VBA továbbra is népszerűbb, mint a VSTO. A VSTO megköveteli a Visual Studio professzionális vagy újabb verziójának használatát - amely valószínűleg többet fog fizetni, mint a használt Office alkalmazás - az Office alkalmazás mellett. Mivel azonban a VBA integrálva van a gazda Office alkalmazásba, akkor nem kell mást.

instagram viewer

A VBA-t elsősorban az Office szakértői használják, akik gyorsabbá és könnyebbé akarják tenni a munkájukat. Ritkán lát nagy méretű rendszereket, amelyek VBA-ban vannak írva. A VSTO-t viszont a nagyobb szervezetek hivatásos programozói használják, hogy elég kifinomult kiegészítőket hozzanak létre. Harmadik féltől származó kérelmek, mint például a Word cég számára a papírgyártó vagy az Excel számviteli cég, valószínűleg a VSTO használatával készülnek.

Dokumentumaikban a Microsoft megjegyzi, hogy alapvetően három ok van a VBA használatára:

-> Automatizálás és ismétlés - A számítógépek ugyanazt a dolgot meg tudják csinálni újra és újra, sokkal jobban és gyorsabban, mint az emberek.

-> A felhasználói interakció kiterjesztései - pontosan azt akarja javasolni, hogy valaki hogyan formázza meg a dokumentumot, vagy mentse el a fájlt? A VBA megteheti. Érdekelni akarja azt, amit valaki belép? A VBA ezt is megteheti.

-> Az Office 2010 alkalmazások közötti interakció - A sorozat egy későbbi cikke a Word és az Excel együttnevezése. De ha erre van szüksége, akkor érdemes megfontolnia Irodai automatizálás, azaz a rendszer írása a VB.NET segítségével, majd szükség szerint az Office alkalmazások, például a Word vagy az Excel funkcióinak használata.

A Microsoft kijelentette, hogy továbbra is támogatni fogja a VBA-t, és kiemelkedő szerepet játszik a Hivatalos A Microsoft Office 2010 fejlesztési ütemterve. Tehát annyira biztos vagy, hogy a Microsoft valaha is biztosítja, hogy a VBA fejlesztésébe történő beruházásod a közeljövőben nem lesz elavult.

Másrészt a VBA az utolsó Microsoft termék, amely a VB6 "COM" technológiától függ. Most már több mint húsz éves! Az emberi években ez idősebbé tenné, mint a vámpír Lestat. Láthatja, hogy „kipróbált, kipróbált és igaz”, vagy úgy gondolja, mint „ősi, elhasználódott és elavult”. Hajlamosak vagyok az első leírás támogatására, de tisztában kell lennie a tényekkel.

Az első dolog, amit meg kell érteni, a VBA és az Office alkalmazások, például a Word és az Excel közötti kapcsolat. Az Office alkalmazás a házigazda a VBA számára. A VBA programot soha nem lehet végrehajtani önmagában. A VBA-t a fogadó környezetben fejlesztették ki (a Fejlesztő fül az Office alkalmazás szalagján), és azt Word dokumentum, Excel munkafüzet, Access adatbázis vagy más Office gazdagép részeként kell végrehajtani.

A VBA tényleges felhasználásának módja is eltérő. Egy olyan alkalmazásban, mint a Word, a VBA-t elsősorban a gazdakörnyezet objektumaihoz való hozzáférés módjaként használják, például egy dokumentum bekezdéseinek elérése a Word Word segítségével. Dokumentum. A bekezdések objektuma. Minden gazdakörnyezet hozzájárul az egyedi objektumokhoz, amelyek a többi gazdakörnyezetben nem állnak rendelkezésre. (Például a Word dokumentumban nincs "munkafüzet". A munkafüzet kizárólag az Excelre vonatkozik.) A Visual Basic kód elsősorban azért van, hogy lehetővé tegyék az egyes Office host alkalmazásokhoz testreszabott objektumok használatát.

A VBA és a gazdagép-specifikus kód közötti fúzió látható ebben a mintában (a Microsoft-tól Northwind mintaadatbázis), ahol a tisztán VBA-kódot piros, az Access-specifikus kódot pedig a-ban mutatják kék. A piros kód ugyanaz lenne az Excelben vagy a Wordben, de a kék kód ezen Access alkalmazáshoz egyedi.

Maga a VBA majdnem ugyanaz, mint évek óta. A gazda Office alkalmazáshoz és a súgórendszerhez történő integrációjának módja tovább javult.

Az Office 2010 verziója alapértelmezés szerint nem jeleníti meg a Fejlesztő fület. A Fejlesztő lapon eljuttatja az alkalmazás azon részéhez, ahol VBA programokat hozhat létre, így az első lépés, amelyet meg kell változtatnia. Egyszerűen lépjen a Fájl fülre, a Beállítások, a Szalag testreszabása elemre, és kattintson a Fő lapon a Fejlesztő mezőre.

A súgórendszer sokkal simábban működik, mint az előző verziókban. Segítséghez fordulhat a VBA-kérdéseivel kapcsolat nélkül is, az Office alkalmazáshoz telepített rendszeren keresztül, vagy a Microsoft segítségével az interneten keresztül. A két interfész úgy lett kialakítva, hogy nagyon hasonló legyen:


Kattintson ide az ábra megjelenítéséhez

Ha gyors internetkapcsolata van, az online súgó több és jobb információt nyújt Önnek. De a helyileg telepített verzió valószínűleg gyorsabb lesz, és a legtöbb esetben ugyanolyan jó. Lehet, hogy alapértelmezetté teszi a helyi súgót, és akkor használja az online súgót, ha a helyi verzió nem adja meg azt, amit szeretne. A leggyorsabb módja az online csatlakozásnak, ha egyszerűen kiválasztja az „All Word” (vagy „All Excel” vagy más alkalmazás) elemet a súgó Keresés legördülő menüjéből. Ez azonnal online lesz, és ugyanazt a keresést végzi, de nem állítja vissza az alapértelmezett választást.


Kattintson ide az ábra megjelenítéséhez

A következő oldalon elkezdjük a VBA program tényleges létrehozásának módját.

Amikor a VBA-t egy olyan alkalmazás, mint például a Word vagy az Excel, "a program" a dokumentumfájlban él, amelyet a host használ. Például a Word alkalmazásban elmentheti a 'Word makrót' (ez nem egy 'makró', de a terminológiáról jelenleg nem fogunk vitatkozni) sem Word dokumentumban, sem Word sablonban.

Tegyük fel, hogy ezt a VBA programot Word-ben hozták létre (ez az egyszerű program csak a betűtípust változtatja meg egy kiválasztott sornál), és egy Word dokumentumba menti:

Sub AboutMacro () ' - A Macro makróról. „A makró felvételét Dan Mabbutt írta: 1991.9.9. ' Kiválasztás. HomeKey Unit: = wdStory. Kiválasztás. EndKey egység: = wdLine, kiterjesztés: = wdExtend. Kiválasztás. Betűtípus. Félkövér = wdToggle. Kiválasztás. EndKey Unit: = wdStory. Befejezés Sub.

Az Office korábbi verziói világosan láthatták a dokumentum részeként tárolt VBA-kódot fájlt a mentett Word dokumentumba úgy, hogy megtekinti azt a Jegyzettömbön, ahol a Word dokumentumban minden megtalálható látott. Ezt az ábrát a Word korábbi verziójával készítették, mert a Microsoft megváltoztatta a dokumentum formátumát a jelenlegi verzióban, és a VBA programkód nem jelenik meg egyértelműen egyszerű szövegként. De az igazgató ugyanaz. Hasonlóképpen, ha Excel táblázatot hoz létre egy "Excel makróval", az egy .xlsm fájl részeként kerül mentésre.


Kattintson ide az ábra megjelenítéséhez

VBA és biztonság

A múltban a számítógépes vírusok egyik leghatékonyabb trükkje volt a rosszindulatú VBA-kód beillesztése egy Office-dokumentumba. Az Office korábbi verzióival egy dokumentum megnyitásakor a vírus automatikusan elindulhat, és pusztítást okozhat a számítógépen. Ez az Office nyitott biztonsági lyuk hatással volt az Office értékesítésére, és ez valóban felkeltette a Microsoft figyelmét. Az Office jelenlegi 2010-es generációjával a Microsoft alaposan beillesztette a lyukat. Az itt említett fejlesztések mellett a Microsoft továbbfejlesztette az Office biztonságát oly módon, hogy akár a hardver szintjén is észre sem veszi. Ha nem szeretné használni a VBA-t, mert hallotta, hogy ez nem biztonságos, akkor biztos lehet abban, hogy a Microsoft megtett egy további mérföldet, hogy ezt megváltoztassa.

A legfontosabb változás az volt, hogy speciális dokumentumtípust hozzunk létre csak az Office dokumentumok számára, amelyek tartalmazzák a VBA programokat. Például a Word alkalmazásában a MyWordDoc.docx nem tartalmazhat VBA programot, mert a Word nem engedélyezi a "docx" fájlkiterjesztéssel mentett fájlok programjait. A fájlt "MyWordDoc.docm" néven kell elmenteni, hogy a VBA programozás lehetővé tegye a fájl részét. Az Excel programban a .xlsm fájlkiterjesztés.

Ezzel a továbbfejlesztett dokumentumtípussal a Microsoft létrehozott egy új biztonsági alrendszert az Officeban, Trust Center néven. Alapvetően testreszabhatja, hogy az Office alkalmazás miként kezeli a VBA kódot tartalmazó dokumentumokat. Az Office alkalmazás Fejlesztői fülén megnyitja a Megbízhatóság központját, ha a szalag Kód szakaszában a Makró biztonság elemre kattint.


Kattintson ide az ábra megjelenítéséhez

Néhány lehetőség az Office alkalmazások "megszilárdítására" szolgál, így a rosszindulatú kód nem fut, mások pedig nem célja, hogy megkönnyítse a fejlesztők és a felhasználók számára a VBA használatát anélkül, hogy a biztonság szükségtelenül lassítaná a dolgokat le. Mint láthatja, sokféle módon testreszabhatja a biztonságot, és mindegyik átlépése messze meghaladja a cikk alkalmazási körét. Szerencsére a Microsoft webhelye kiterjedt dokumentációval rendelkezik erről a témáról. Szerencsés az is, hogy az alapértelmezett biztonsági beállítások a legtöbb követelménynek megfelelőek.

Mivel a VBA a host Office alkalmazáshoz van kötve, ott kell futtatnia. Ezt a témát a következő oldalon kezdjük.

Hogyan futhatok egy VBA-alkalmazást

Ez valójában egy nagyon jó kérdés, mert ez az első, amelyet az alkalmazás felhasználói kérdeznek. Alapvetően kétféle módon létezik:

-> Ha úgy dönt, hogy nem használja a vezérlőelemet, például egy gombot a program elindításához, akkor a szalagon lévő Makró parancsot kell használni (Fejlesztő lap, Kódcsoport). Válassza ki a VBA programot, majd kattintson a Futtatás gombra. De ez valószínűleg kissé túl soknak tűnik néhány felhasználó számára. Előfordulhat például, hogy nem akarja, hogy a Fejlesztő fül is elérhető legyen számukra. Ebben az esetben ...

-> Hozzá kell tennie valamit, amelyre a felhasználó rákattinthat vagy beírhat az alkalmazás elindításához. Ebben a cikkben megvizsgáljuk a Gomb vezérlést. De kattinthat egy parancsikonra, egy ikonra az eszköztáron, vagy akár az adatbevitelre is. Ezeket hívják események és amit ebben és a későbbi cikkekben fogunk írni esemény kódja - programkód, amelyet automatikusan futtatunk, amikor valamilyen konkrét esemény - például egy gombvezérlőre kattintás - történik.

UserForms, űrlapvezérlők és ActiveX vezérlők

Ha nem csak egy makrót választ, a VBA program futtatásának leggyakoribb módja egy gombra kattintás. Ez a gomb lehet a űrlap-ellenőrzés vagy egy ActiveX vezérlés. Bizonyos mértékben a választás az alkalmazott Office alkalmazástól függ. Az Excel kissé eltérő választási lehetőségeket kínál, mint például a Word. De az ellenőrzés ezen alapvető típusai ugyanazok.

Mivel a legtöbb rugalmasságot kínálja, nézzük meg, mit tehetünk az Excel 2010 programmal. Egy egyszerű szöveges üzenet kerül beillesztésre a cellába, amikor több különböző gombra kattintanak, csak a különbségek világosabbá tétele érdekében.

Az induláshoz hozzon létre egy új Excel munkafüzetet, és válassza a Fejlesztő fület. (Ha más Office-alkalmazással rendelkezik, akkor ezen utasítások egy változatának működnie kell.)

Kattintson a Beszúrás ikonra. Először az Űrlap-ellenőrző gombbal fogunk dolgozni.

Az űrlapvezérlés a régebbi technológia. Az Excel programban először az 5.0 verzióban mutatták be őket 1993-ban. Ezután a VBA UserForms-szal fogunk dolgozni, de az űrlapvezérlők nem használhatók velük. Ezek sem kompatibilisek az interneten. Az űrlapvezérlőket közvetlenül a munkalap felületére helyezik. Másrészt egyes ActiveX-vezérlők - amelyeket a következőkben figyelembe veszünk - nem használhatók közvetlenül a munkalapokon.

Az űrlapvezérlőket "kattintás és rajzolás" technikával használják. Kattintson a Button űrlapvezérlőre. Az egérmutató pluszjelre változik. Rajzolja meg a vezérlőelemet a felületre húzva. Az egérgomb elengedésekor megjelenik egy párbeszédpanel, amely makróparancsot kéri a gombhoz való kapcsolódáshoz.


Kattintson ide az ábra megjelenítéséhez

Különösen akkor, ha először hoz létre vezérlőelemet, akkor nem lesz VBA-makrója, amely arra vár, hogy csatlakozzon a gombra, tehát kattintson az Új gombra, és a VBA Szerkesztő megnyílik a javasolt névvel, amely már be van töltve egy esemény héjába szubrutint.


Kattintson ide az ábra megjelenítéséhez

A nagyon egyszerű alkalmazás befejezéséhez írja be ezt a VBA-kódot a Sub részbe:


Cellák (2, 2) .Value = "Kattintott képernyőgomb"

Az ActiveX gomb majdnem pontosan ugyanaz. Az egyik különbség az, hogy a VBA ezt a kódot a munkalapba helyezi, nem pedig külön modulba. Itt található a teljes eseménykód.

Privát alparancsgomb1_Click () Cellák (4, 2) .Value = "Az ActiveX gombra kattintva" Befejezés Sub.

Amellett, hogy ezeket a vezérlőket közvetlenül a munkalapra helyezi, hozzáadhat egy a UserForm a projektre, és ehelyett ellenőrzéseket helyezze rá. A UserForms - nagyjából ugyanaz, mint a Windows űrlapok - sok előnnyel jár, mivel jobban képes kezelni a vezérlőket, mint egy normál Visual Basic alkalmazás. Adjon hozzá UserForm-ot a projekthez a Visual Basic szerkesztőben. Használja a Nézet menüt, vagy kattintson a jobb gombbal a Project Explorer programban.


Kattintson ide az ábra megjelenítéséhez

A UserForm alapértelmezése: nem jelenítse meg az űrlapot. Tehát, hogy láthatóvá tegye (és a vezérlőket a felhasználó számára elérhetővé tegye), hajtsa végre az űrlap Megjelenítési módszerét. Csak ehhez adtam hozzá egy másik űrlapgombot.

Algomb2_Click () UserForm1.Show. Befejezés Sub.

Észre fogja venni, hogy a UserForm az módbeli alapértelmezés szerint. Ez azt jelenti, hogy ha az űrlap aktív, az alkalmazásban minden más inaktív. (Például, ha rákattint a többi gombra, akkor semmi sem történik.) Ezt megváltoztathatja úgy, hogy a UserForm ShowModal tulajdonságát Hamisra változtatja. De ez elmélyít minket a programozásban. A sorozat következő cikkei részletesebb magyarázatot adnak erről.

A UserForm kódja a UserForm objektumba kerül. Ha a Objektum nézet parancsot választja az összes objektumhoz a Project Explorerben, látni fogja, hogy három különálló kattintásesemény-alprogram van három különböző objektumban. De mind ugyanabban a munkafüzetben elérhetők.


Kattintson ide az ábra megjelenítéséhez

Amellett, hogy egy eseményt egy gombra kattintással kényszerít, a VBA-t arra is használják, hogy a tárhely alkalmazásban lévő objektumok eseményeire reagáljon. Például fel tudja észlelni, hogy mikor módosul a táblázat az Excel programban. Vagy felismeri, hogy mikor adtak hozzá sort az adatbázishoz az Access programban, és megírhat egy programot az esemény kezelésére.

A szokásos parancsgombok, szövegmezők és egyéb összetevők mellett, amelyeket a programokban mindig látnak, olyan összetevőket is felvehet, amelyek valójában az Excel-táblázat részét képezik ban ben a Word-dokumentumod. Vagy tedd meg fordítva. Ez messze túlmutat a "másolás és beillesztés" munkán. Például, megjeleníthet egy Excel-táblázatot egy Word-dokumentumban.

A VBA lehetővé teszi az egyik Office alkalmazás teljes erejének a felhasználását egy másikban. Például a Word viszonylag egyszerű számítási képességgel rendelkezik. De az Excel - jó - "kiemelkedik" a számítás során. Tegyük fel, hogy a Gamma függvény természetes naplóját (viszonylag kifinomult matematikai számítást) a Word-dokumentumban akarta használni? A VBA segítségével átadhat értékeket ennek a függvénynek az Excelben, és visszatérést kaphat a Word-dokumentumba.

És sokkal többet használhat, mint az Office alkalmazások! Ha rákattint a "További vezérlők" ikonra, láthatja a számítógépére telepített dolgok jelentős listáját. Nem mindez működik "a dobozból", és rendelkeznie kell mindegyik dokumentációjával, de ez képet ad arról, hogy a VBA támogatása milyen széles.

A VBA összes tulajdonsága közül egy olyan, amely nyilvánvalóan sokkal hasznosabb, mint bármelyik másik. Tudja meg, mi ez a következő oldalon.

Megmentettem a legutóbbi legjobbját! Ez egy olyan módszer, amely az egész Office alkalmazásra vonatkozik. Meg fogja találni magát, hogy sokat használja, tehát itt bemutatjuk a Bevezetés részében.

Ahogy a kifinomultabb VBA programokat kezdi kódolni, az egyik első felmerülő probléma az, hogy megismerjék az Office objektumok módszereit és tulajdonságait. Ha VB.NET programot ír, akkor gyakran keres mintákat és példákat a probléma megoldására. De ha figyelembe vesszük az összes különféle hosting alkalmazást és azt a tényt, hogy mindegyik több száz új objektummal rendelkezik, általában nem talál valamit, amely pontosan megfelel az elvégzendő dolgoknak.

A válasz: "Makró rögzítése ..."

Az alapötlet az, hogy bekapcsolja a „Makró rögzítése” funkciót, lépjen át egy olyan folyamat lépésein, amely hasonló ahhoz, amit a program végrehajtani szeretne, majd ellenőrizze a kapott VBA programot kódok és ötletek számára.

Sok ember hibázza azt gondolva, hogy pontosan meg kell tudnia rögzíteni a kívánt műsort. De egyáltalán nem szükséges, hogy ilyen pontos legyen. Általában elég egy olyan VBA program rögzítéséhez, amely csak "közel áll" a kívánthoz, majd hozzáadja a kód módosításait, hogy pontosan elvégezze a munkát. Olyan egyszerű és hasznos, hogy néha egy tucat műsort rögzítenek kis eltérésekkel, csak hogy megnézhessem, mi a kódkülönbség az eredményben. Ne felejtsen el törölni az összes kísérletet, ha befejezte a nézetet!

Példaként rákattintottam a Makró rögzítése elemre a Word Visual Basic szerkesztőben, és több sor szöveget írtam. Itt az eredmény. (A vonal folytatása hozzá lett adva, hogy rövidebbé váljanak.)

Sub Macro1 () ' „Macro1 makró. ' ' Kiválasztás. TypeText szöveg: = _. "Ezek az idők" Kiválasztás. TypeText szöveg: = _. "próbáld ki a férfiak lelkét. Az " Kiválasztás. TypeText szöveg: = _. "nyári katona" Kiválasztás. TypeText szöveg: = _. "és a napfény hazafi" Kiválasztás. TypeText szöveg: = _. "ezekben az időkben csökkenni fog" Kiválasztás. TypeText szöveg: = _. "az országuk szolgálata." Kiválasztás. MoveUp Unit: = wdLine, Count: = 1. Kiválasztás. HomeKey Unit: = wdLine. Kiválasztás. MoveRight egység: = wdCharacter, _. Szám: = 5, kiterjesztés: = wdExtend. Kiválasztás. Betűtípus. Félkövér = wdToggle. Befejezés Sub.

Senki sem tanulja meg a VBA-t. Mindig egy adott Office alkalmazáshoz használja. Tehát a tanulás folytatásához itt található néhány cikk, amely bemutatja a Word és az Excel VBA-ját:

-> A VBA használatának megkezdése: A Word munkatársa

-> A VBA használatának megkezdése: Az Excel munkatárs

instagram story viewer