- 08/14/2019
- 25 perc olvasni
-
- o
- R
- L
- m
- O
-
+4
te néző egy ismétlődő takarítani ötven táblázatok Szó? Szeretné, ha egy adott dokumentum felszólítaná a felhasználót a bemenetre, amikor megnyílik?, Nehezen tudja kitalálni, hogyan lehet hatékonyan beszerezni a névjegyeket a Microsoft Outlook-ból egy Microsoft Excel táblázatba?
ezeket a feladatokat elvégezheti, és sokkal többet érhet el a Visual Basic for Applications (VBA) használatával az Office számára—egy egyszerű, de hatékony programozási nyelv, amelyet az irodai alkalmazások kiterjesztésére használhat.
Ez a cikk olyan tapasztalt irodai felhasználók számára készült, akik szeretnének megismerni a VBA-t, és akik szeretnének némi betekintést nyerni abba, hogy a programozás hogyan segítheti őket az Office testreszabásában.
az irodai alkalmazáscsomag gazdag funkciókkal rendelkezik., A dokumentumok, e-mailek, adatbázisok, űrlapok, táblázatok és prezentációk készítésének, formázásának és manipulálásának sokféle módja van. A VBA programozás nagy ereje az irodában az, hogy szinte minden művelet, amelyet egérrel, billentyűzettel vagy párbeszédpanellel végezhet el, a VBA használatával is elvégezhető. Továbbá, ha egyszer meg lehet tenni a VBA-val, akkor ugyanolyan könnyen elvégezhető százszor. (Valójában az ismétlődő feladatok automatizálása a VBA egyik leggyakoribb felhasználása az irodában.,)
a VBA szkriptek erejéig a napi feladatok felgyorsítása érdekében a VBA segítségével új funkciókat adhat az irodai alkalmazásokhoz, vagy a dokumentumok felhasználójával kapcsolatba léphet az üzleti igényeire jellemző módon. Például írhat néhány VBA kódot, amely egy felbukkanó üzenetet jelenít meg, amely emlékezteti a felhasználókat, hogy mentsenek egy dokumentumot egy adott hálózati meghajtóra, amikor először próbálják menteni.
Ez a cikk a VBA programozás erejének kihasználásának néhány elsődleges okát vizsgálja., Feltárja a VBA nyelvet, valamint a dobozon kívüli eszközöket,amelyekkel a megoldásokkal dolgozhat. Végül, tartalmaz néhány tippet és módot arra, hogy elkerüljük a közös programozási frusztrációkat és tévedéseket.
Megjegyzés
érdekli olyan megoldások kidolgozása, amelyek több platformon is kiterjesztik az irodai élményt? Nézze meg az új Office bővítmények modelljét. Az Office bővítményeknek kis lábnyomuk van a VSTO bővítményekhez és megoldásokhoz képest, ezeket pedig szinte bármilyen webes programozási technológia, például HTML5, JavaScript, CSS3 és XML használatával lehet felépíteni.,
mikor kell használni a VBA-t, és miért
több fő oka van annak, hogy a VBA programozást hivatalba kell helyezni.
automatizálás és ismétlés
a VBA hatékony és hatékony a formázási vagy korrekciós problémák ismétlődő megoldásai esetén. Például megváltoztatta-e valaha a bekezdés stílusát a Word minden oldalának tetején? Előfordult már, hogy több táblát kellett újraformáznia, amelyeket Excel-ből beillesztettek egy Word-dokumentumba vagy egy Outlook-e-mailbe? Előfordult már, hogy ugyanazt a változást több Outlook kapcsolatok?,
ha van egy változás, hogy meg kell, hogy több mint tíz vagy húsz alkalommal, érdemes lehet automatizálni azt VBA. Ha ez egy olyan változás, amelyet több százszor kell tennie, akkor minden bizonnyal érdemes megfontolni. Szinte bármilyen formázási vagy szerkesztési változás, amit kézzel tehet, elvégezhető a VBA-ban.
felhasználói interakciók kiterjesztései
vannak olyan esetek, amikor ösztönözni vagy kényszeríteni szeretné a felhasználókat arra, hogy kölcsönhatásba lépjenek az Office alkalmazással vagy dokumentummal olyan módon, amely nem része a szokásos alkalmazásnak., Előfordulhat például, hogy egy dokumentum megnyitásakor, mentésekor vagy kinyomtatásakor arra kéri a felhasználókat, hogy tegyenek meg egy bizonyos műveletet.
interakció az irodai alkalmazások között
át kell másolnia az összes névjegyet az Outlook-ból A Word-be, majd formáznia kell őket valamilyen módon? Vagy át kell helyeznie az adatokat az Excel-ből egy PowerPoint diák készletére? Néha az egyszerű copy and paste nem azt teszi, amit szeretne, vagy túl lassú., A VBA programozás segítségével egyszerre két vagy több irodai alkalmazás részleteivel léphet kapcsolatba, majd módosíthatja az egyik alkalmazás tartalmát a másik tartalma alapján.
dolgok más módon
a VBA programozás hatékony megoldás, de nem mindig az optimális megközelítés. Néha érdemes más módszereket használni a célok eléréséhez.
a kritikus kérdés az, hogy van-e könnyebb út. Mielőtt elkezdené a VBA projekt, úgy a beépített eszközök, szabványos funkciókat., Ha például időigényes szerkesztési vagy elrendezési feladattal rendelkezik, fontolja meg a stílusok vagy gyorsítógombok használatát a probléma megoldásához. El tudja végezni a feladatot egyszer, majd a CTRL+Y (Redo) segítségével ismételje meg? Létrehozhat egy új dokumentumot a megfelelő formátummal vagy sablonnal, majd átmásolhatja a tartalmat az új dokumentumba?
az irodai alkalmazások erősek; a szükséges megoldás már ott lehet. Szánjon egy kis időt arra, hogy többet megtudjon az Office-ról, mielőtt a programozásba ugrik.
mielőtt elkezdené a VBA projektet, győződjön meg róla, hogy van ideje dolgozni a VBA-val., A programozás fókuszt igényel, és kiszámíthatatlan is lehet. Különösen kezdőként soha ne forduljon a programozáshoz, hacsak nincs ideje gondosan dolgozni. Megpróbál írni egy “gyors script”, hogy megoldja a problémát, amikor a határidő szövőszék vezethet egy nagyon stresszes helyzetet. Ha egy rohanás, érdemes használni a hagyományos módszerek, akkor is, ha azok monoton, ismétlődő.
VBA programozás 101
kód használatával az alkalmazások dolgokat csinálnak
lehet, hogy úgy gondolja, hogy a kód írása titokzatos vagy nehéz, de az alapelvek minden nap érvelést használnak, és meglehetősen hozzáférhetők., A Microsoft Office alkalmazásokat úgy hozzák létre, hogy olyan tárgyakat fedjenek fel, amelyek utasításokat fogadhatnak, ugyanúgy, mint a telefon olyan gombokkal, amelyeket a telefonnal való interakcióhoz használ. Ha megnyom egy gombot, a telefon felismeri az utasítást, és tartalmazza a megfelelő számot a tárcsázási sorrendben. A programozás során kölcsönhatásba lép az alkalmazással azáltal, hogy utasításokat küld az alkalmazás különböző objektumaira. Ezek a tárgyak expanzívak, de vannak korlátaik., Csak azt tehetik, amire tervezték őket, és csak azt teszik, amire utasítja őket.
például vegye figyelembe azt a felhasználót, aki megnyitja a dokumentumot a Word-ben, néhány változtatást hajt végre, elmenti a dokumentumot, majd bezárja. A VBA programozás világában a Word egy Dokumentumobjektumot tesz ki. A VBA kód használatával utasíthatja a Dokumentumobjektumot olyan dolgok elvégzésére, mint a Megnyitás, mentés vagy bezárás.
a következő rész az objektumok rendezésének és leírásának módját tárgyalja.,
az objektummodell
a fejlesztők programozási objektumokat szerveznek egy hierarchiában, ezt a hierarchiát pedig az alkalmazás objektummodelljének nevezik. A Word például egy felső szintű Alkalmazásobjektummal rendelkezik, amely Dokumentumobjektumot tartalmaz. A Dokumentumobjektum Bekezdésobjektumokat tartalmaz stb. Az objektummodellek nagyjából tükrözik azt, amit a felhasználói felületen lát. Ezek az alkalmazás fogalmi térképe és képességei.
az objektum definícióját osztálynak nevezzük, így előfordulhat, hogy ezt a két kifejezést felcserélhetően használják., Technikailag egy osztály az objektum létrehozásához vagy példányosításához használt leírás vagy sablon.
Ha egy objektum létezik, akkor manipulálhatja azt a tulajdonságainak beállításával, valamint a módszerek hívásával. Ha az objektumot főnévnek tekintjük, akkor a tulajdonságok a főnevet leíró melléknevek, a módszerek pedig a főnevet animáló igék. A tulajdonság megváltoztatása megváltoztatja az objektum megjelenésének vagy viselkedésének bizonyos minőségét. Az egyik objektummódszer meghívása az objektum bizonyos művelet végrehajtását eredményezi.,
a VBA kód ebben a cikkben egy nyílt irodai alkalmazás ellen fut, ahol a kód által manipulált objektumok közül sok már működik; például maga az alkalmazás, az Excel munkalapja, a Word dokumentum, a PowerPoint bemutatása, Az Explorer és a mappa objektumok az Outlook programban. Miután megismerte az objektummodell alapvető elrendezését, valamint az alkalmazás néhány kulcsfontosságú tulajdonságát, amelyek hozzáférést biztosítanak az aktuális állapotához, elkezdheti kiterjeszteni és manipulálni az Office alkalmazást az Office Office Office alkalmazásban.,
Methods
a Wordben például módosíthatja a tulajdonságokat, és az alkalmazásobjektum ActiveDocument tulajdonságának használatával hivatkozhat az aktuális Word dokumentum módszereire. Ez az ActiveDocument tulajdonság egy hivatkozást ad vissza a Word alkalmazásban jelenleg aktív Dokumentumobjektumra. “Visszaadja a hivatkozás” azt jelenti ” hozzáférést biztosít.”
a következő kód pontosan azt teszi, amit mond; vagyis elmenti az aktív dokumentumot az alkalmazásba.,
Application.ActiveDocument.Save
olvassa el a kódot balról jobbra, ” ebben az alkalmazásban az ActiveDocument által hivatkozott dokumentummal hívja meg a mentési módszert.”Ne feledje, hogy a Mentés a módszer legegyszerűbb formája; nem igényel részletes utasításokat tőled. A Dokumentumobjektumot mentésre utasítja, és nem igényel több bemenetet tőled.
Ha egy módszer több információt igényel, ezeket a részleteket paramétereknek nevezzük. A következő kód a SaveAs módszert futtatja, amely új nevet igényel a fájlhoz.,
Application.ActiveDocument.SaveAs ("New Document Name.docx")
a metódusnév után zárójelben felsorolt értékek a paraméterek. Itt a fájl új neve a SaveAs módszer paramétere.
tulajdonságok
ugyanazt a szintaxist használja egy tulajdonság beállításához, amelyet egy tulajdonság olvasásához használ. A következő kód végrehajtja a módszert az A1 cellának az Excel programban történő kiválasztására, majd egy tulajdonság beállítására, hogy valamit tegyen a cellába.
Application.ActiveSheet.Range("A1").Select Application.Selection.Value = "Hello World"
a VBA programozás első kihívása az, hogy megérezzük az egyes irodai alkalmazások objektummodelljét, és olvassuk el az objektumot, a módszert és a tulajdonság szintaxist., Az objektummodellek minden irodai alkalmazásban hasonlóak, de mindegyik az általa manipulált dokumentumok, objektumok típusára jellemző.
a kódrészlet első sorában megjelenik az alkalmazásobjektum, az Excel ezúttal, majd az ActiveSheet, amely hozzáférést biztosít az aktív munkalaphoz. Ezután egy olyan kifejezés, amely nem olyan ismerős, tartomány, ami azt jelenti, hogy “ilyen módon határozzuk meg a sejtek tartományát.”A kód arra utasítja a tartományt, hogy csak A1-et hozzon létre, mint a sejtek meghatározott halmazát. Más szóval, az első kódsor meghatároz egy objektumot, a tartományt, majd egy metódust futtat ellene, hogy kiválassza., Az eredmény automatikusan tárolódik egy másik tulajdonság az alkalmazás neve kiválasztás.
a második kódsor a kiválasztás Értéktulajdonságát a “Hello World” szövegre állítja, ez az érték pedig az A1 cellában jelenik meg.
a legegyszerűbb VBA kód, amelyet írsz, egyszerűen hozzáférhet az Office alkalmazásban lévő objektumokhoz, amelyekkel dolgozik, és beállíthatja a tulajdonságokat. Például hozzáférhet a Word táblázatában szereplő sorokhoz, és módosíthatja azok formázását a VBA szkriptben.,
Ez egyszerűnek hangzik,de hihetetlenül hasznos lehet; miután megírhatja ezt a kódot, kihasználhatja a programozás összes erejét, hogy ugyanazokat a változásokat több táblában vagy dokumentumban végezze el, vagy valamilyen logika vagy feltétel szerint készítse el őket. Egy számítógép esetében az 1000-es változtatás nem különbözik a 10-estől, így itt a méretgazdaságosság nagyobb dokumentumokkal és problémákkal jár, és itt a VBA valóban ragyoghat és időt takaríthat meg.,
Makrók, valamint a Visual Basic Editor
Most, hogy tudom, valamit arról, hogy milyen Irodai alkalmazások tegye ki az objektum modellek, valószínűleg alig várja, hogy hívd tárgy módszerek, beállítás objektum tulajdonságait, illetve reagál a tárgy események. Ehhez meg kell írni a kódot olyan helyen, oly módon, hogy az Office meg tudja érteni; általában a Visual Basic szerkesztő használatával. Bár alapértelmezés szerint telepítve van, sok felhasználó nem tudja, hogy még akkor is elérhető, amíg engedélyezve van a szalagon.
minden irodai alkalmazás használja a szalagot., A szalag egyik lapja A fejlesztő lap, ahol elérheti a Visual Basic szerkesztőt és más fejlesztői eszközöket. Mivel az Office alapértelmezés szerint nem jeleníti meg a fejlesztői fület, engedélyeznie kell azt a következő eljárással:
A Fejlesztői fül engedélyezéséhez
-
a Fájl lapon válassza az Opciók párbeszédpanel megnyitásához.
-
válassza a szalag testreszabása lehetőséget a párbeszédpanel bal oldalán.
-
a párbeszédpanel bal oldalán válassza a parancsok kiválasztása lehetőséget, válassza a népszerű parancsok lehetőséget.,
-
a párbeszédpanel jobb oldalán található szalag testreszabása alatt válassza a fő füleket a legördülő listából, majd válassza a fejlesztő jelölőnégyzetet.
-
válassza az OK lehetőséget.
Megjegyzés
Az Office 2007-ben a fejlesztői lapot az Office gomb kiválasztásával, az opciók kiválasztásával, majd a fejlesztő megjelenítése fül kiválasztásával szalag jelölőnégyzet az Opciók párbeszédpanel népszerű kategóriájában.
A Fejlesztői lap engedélyezése után könnyű megtalálni a Visual Basic és a Macros gombokat.
1.ábra., A fejlesztői fül gombjai
biztonsági problémák
az irodai felhasználók vírusok és veszélyes makrókód elleni védelme érdekében nem mentheti a makrókódot egy szabványos Office-dokumentumba, amely szabványos fájlkiterjesztést használ. Ehelyett el kell mentenie a kódot egy speciális kiterjesztésű fájlba. Például nem mentheti a makrókat egy szabványos Word-dokumentumba a-val .docx kiterjesztés; ehelyett egy speciális Word makró-kompatibilis dokumentumot kell használnia a-Val .docm kiterjesztés.
amikor megnyit egy .,a docm fájl, az Office security továbbra is megakadályozhatja a dokumentumban található makrók futását, anélkül vagy anélkül. Vizsgálja meg az összes irodai alkalmazás bizalmi központjában található beállításokat. Az alapértelmezett beállítás letiltja a makró futtatását, de figyelmezteti Önt, hogy a makrók le vannak tiltva, és lehetőséget ad arra, hogy újra bekapcsolja azokat a dokumentumhoz.
kijelölhet bizonyos mappákat, ahol a makrók futtathatók Megbízható helyek, megbízható dokumentumok vagy megbízható kiadók létrehozásával., A leginkább hordozható lehetőség a megbízható kiadók használata, amely digitálisan aláírt dokumentumokkal működik, amelyeket terjeszt. Az adott irodai alkalmazás biztonsági beállításaival kapcsolatos további információkért nyissa meg az Opciók párbeszédpanelt, válassza a Trust Center lehetőséget, majd válassza a Trust Center Beállítások lehetőséget.
Megjegyzés
néhány irodai alkalmazás, például az Outlook, alapértelmezés szerint mentheti a makrókat a helyi számítógép mester sablonjában., Bár ez a stratégia csökkenti a saját számítógépén a helyi biztonsági problémákat, amikor saját makrókat futtat, telepítési stratégiát igényel, ha el akarja terjeszteni a makrót.
Makró rögzítése
amikor a makró gombot választja a fejlesztő lapon, megnyitja a makrók párbeszédpanelt, amely hozzáférést biztosít a VBA alprogramokhoz vagy makrókhoz, amelyekhez hozzáférhet egy adott dokumentumból vagy alkalmazásból. A Visual Basic gomb megnyitja a Visual Basic szerkesztőt, ahol létrehozza és szerkeszti a VBA kódot.,
egy másik gomb a fejlesztő lapon a Word and Excel programban a Makró rögzítése gomb, amely automatikusan generál VBA kódot, amely képes reprodukálni az alkalmazásban végrehajtott műveleteket. Record makró egy fantasztikus eszköz, amely segítségével többet megtudni VBA. A generált kód olvasása betekintést nyújt a VBA – ba, és stabil hidat biztosít az Office mint felhasználó ismerete és a programozó ismerete között., Az egyetlen figyelmeztetés az, hogy a generált kód zavaró lehet, mert a makró szerkesztőnek bizonyos feltételezéseket kell tennie a szándékairól, és ezek a feltételezések nem feltétlenül pontosak.
makró rögzítéséhez
-
nyissa meg az Excel programot egy új munkafüzetbe, majd válassza ki a fejlesztő fület a szalagon. Válassza ki a Makró rögzítése lehetőséget, majd fogadja el az összes alapértelmezett beállítást a Makró rögzítése párbeszédpanelen, beleértve a makró 1-et a makró neveként, ezt a munkafüzetet pedig helyként.
-
válassza az OK lehetőséget a makró rögzítésének megkezdéséhez. Vegye figyelembe, hogy a gomb szövege hogyan változik a felvétel leállításához., Válassza ki azt a gombot abban a pillanatban, amikor befejezi a rögzíteni kívánt műveleteket.
-
válassza ki a B1 cellát, majd írja be a programozó klasszikus első karakterláncát: Hello World. Hagyja abba a gépelést, majd nézze meg a Felvétel leállítása gombot; szürkén jelenik meg, mert az Excel arra vár, hogy befejezze az érték beírását a cellába.
-
válassza ki a B2 cellát a művelet befejezéséhez a B1 cellában, majd válassza a Felvétel leállítása lehetőséget.
-
válassza ki a makrókat a fejlesztő lapon, válassza a Macro1 lehetőséget, ha nincs kiválasztva, majd válassza a Szerkesztés lehetőséget a Macro1 kódjának megtekintéséhez a Visual Basic szerkesztőben.,
2. ábra. Makrókód a Visual Basic Editor
A
kódra nézve a létrehozott makrónak hasonlónak kell lennie a következő kódhoz.
Sub Macro1()'' Macro1 Macro'' Range("B1").Select ActiveCell.FormulaR1C1 = "Hello World" Range("B2").SelectEnd Sub
vegye figyelembe a hasonlóságokat a korábbi kódrészlethez, amely az A1 cellában kiválasztott szöveget választotta, valamint a különbségeket. Ebben a kódban a B1 cellát választja ki, majd a “Hello World” karakterláncot alkalmazza az aktív cellára. A szöveg körüli idézetek karakterláncértéket határoznak meg, szemben a numerikus értékkel.,
emlékszel, hogyan választottad a B2 cellát a Felvétel leállítása gomb újbóli megjelenítéséhez? Ez a művelet kódsorként is megjelenik. A makró felvevő rögzíti az összes billentyűleütést.
az aposztrófdal kezdődő és a szerkesztő által zöldre színezett kódsorok olyan megjegyzések, amelyek megmagyarázzák a kódot, vagy emlékeztetik Önt és más programozókat a kód céljára. A VBA figyelmen kívül hagy minden sort, vagy egy sor egy részét, amely egyetlen idézettel kezdődik. Az egyértelmű és megfelelő megjegyzések írása a kódban fontos téma, de ez a vita nem tartozik e cikk hatálya alá., A cikk e kódra történő későbbi hivatkozásai nem tartalmazzák ezt a négy megjegyzéssort.
amikor a makró felvevő generálja a kódot, komplex algoritmust használ a kívánt módszerek és tulajdonságok meghatározásához. Ha nem ismeri fel egy adott tulajdonságot, sok erőforrás áll rendelkezésre, hogy segítsen. Például a rögzített makróban a makró felvevő generált kódot, amely az FormulaR1C1 tulajdonságra utal. Nem biztos benne, hogy ez mit jelent?
Megjegyzés
vegye figyelembe, hogy az alkalmazásobjektum minden VBA makróban szerepel., A rögzített kód az alkalmazással működik. minden sor elején.
fejlesztői segítség használata
válassza ki a FormulaR1C1-et a rögzített makróban, majd nyomja meg az F1 billentyűt. A súgórendszer gyors keresést futtat, meghatározza, hogy a megfelelő témák az Excel Súgó Excel fejlesztői részében találhatók, majd felsorolja az FormulaR1C1 tulajdonságot. Kiválaszthatja a linket, hogy többet tudjon meg a tulajdonságról, de mielőtt ezt megtenné, vegye figyelembe az Excel objektum modell referencia linkjét az ablak alján., Válassza ki a linket az objektumok hosszú listájának megtekintéséhez, amelyet az Excel az objektummodellben használ a munkalapok és azok összetevőinek leírásához.
válasszon egyet az adott objektumra vonatkozó tulajdonságok és módszerek közül, valamint kereszthivatkozásokat a különböző kapcsolódó lehetőségekre. Sok Súgóbejegyzésnek rövid kódpéldái is vannak, amelyek segíthetnek Önnek. Például követheti a határok objektum linkjeit, hogy megnézze, hogyan állíthat be egy határt a VBA-ban.
Worksheets(1).Range("A1").Borders.LineStyle = xlDouble
a kód szerkesztése
a Határkód eltér a rögzített makrótól., Az egyik dolog, ami zavaró lehet egy objektummodellnél, az, hogy ebben a példában egynél több módon lehet kezelni egy adott objektumot, az A1 cellát.
néha a legjobb módja annak, hogy megtanulják a programozás, hogy kisebb változtatásokat néhány működő kódot, hogy mi történik ennek eredményeként. Próbáld ki most. Nyissa meg a Macro1-et a Visual Basic szerkesztőben, majd módosítsa a kódot a következőre.
Sub Macro1() Worksheets(1).Range("A1").Value = "Wow!" Worksheets(1).Range("A1").Borders.LineStyle = xlDoubleEnd Sub
Tip
használja a Copy and Paste-ot, amennyire csak lehetséges, ha kóddal dolgozik a gépelési hibák elkerülése érdekében.,
nem kell mentenie a kódot a kipróbáláshoz, ezért térjen vissza az Excel dokumentumba, válassza a makrókat a fejlesztő lapon, válassza a Macro1 lehetőséget, majd válassza a Futtatás lehetőséget. Cell A1 most tartalmazza a szöveget Wow! és kétsoros határ van körülötte.
3. ábra. Eredmények az első makró
csak kombinált makró felvétel, olvasás az objektum modell dokumentációt, és egyszerű programozás, hogy egy VBA program, hogy nem valami. Gratulálok!
nem működött? Olvassa el a hibakeresési javaslatokat a VBA-ban.,
programozási tippek és trükkök
kezdje példákkal
a VBA közösség nagyon nagy; az Interneten történő keresés szinte mindig példát adhat a VBA kódra, amely valami hasonlót tesz ahhoz, amit szeretne. Ha nem talál jó példát, próbálja meg lebontani a feladatot kisebb egységekre, keresse meg mindegyiket, vagy próbáljon egy gyakoribb, de hasonló problémára gondolni. Egy példával kezdve órányi időt takaríthat meg.
Ez nem jelenti azt, hogy az Interneten ingyenes és jól átgondolt kód várja Önt., Valójában, néhány kód, hogy megtalálja lehet, hogy hibákat vagy hibákat. Az ötlet az, hogy az online vagy a VBA dokumentációban található példák előnyt jelentenek. Ne feledje, hogy a tanulási programozás időt és gondolatot igényel. Mielőtt nagy rohanásba kerülne, hogy egy másik megoldást használjon a probléma megoldására, kérdezze meg magától, hogy a VBA a megfelelő választás erre a problémára.
egyszerűbb probléma
a programozás gyorsan összetett lehet. Fontos, különösen kezdőként, hogy a problémát a lehető legkisebb logikai egységekre bontsa, majd minden egyes darabot elszigetelten írjon és teszteljen., Ha túl sok kód van előtted, és összezavarodsz vagy összezavarodsz, állj meg és tedd félre a problémát. Amikor visszatér a problémához, másolja ki a probléma egy kis darabját egy új modulba, oldja meg ezt a darabot, szerezze be a kódot, majd tesztelje, hogy működik-e. Ezután lépjen tovább a következő részre.
hibák és hibakeresés
a programozási hibák két fő típusa létezik: szintaktikai hibák, amelyek megsértik a programozási nyelv nyelv nyelvtani szabályait, valamint futási idő hibák, amelyek szintaktikailag helyesnek tűnnek, de nem, amikor a VBA megpróbálja végrehajtani a kódot.,
bár lehet, hogy frusztráló kijavítani, szintaktikai hibákat könnyű elkapni; a Visual Basic szerkesztő sípol, villog rád, ha beírja a szintaxis hiba a kódot.
például a karakterlánc értékeket kettős idézőjelekkel kell körülvenni a VBA-ban. Ha szeretné megtudni, mi történik, ha használja egyetlen idézetek helyett, térjen vissza a Visual Basic szerkesztő, majd cserélje ki a ” Wow!”string a kód példa” Wow!”(azaz a szó Wow zárt egyetlen idézetek). Ha a következő sort választja, a Visual Basic szerkesztő reagál., A “Compile error: Expected: expression” hiba nem olyan hasznos, de a hibát generáló sor pirosra vált, hogy elmondja, hogy szintaktikai hibája van ebben a sorban, ennek eredményeként ez a program nem fog futni.
válassza az OK lehetőséget, majd módosítsa a szöveget”Wow!”.
a futásidejű hibákat nehezebb elkapni, mert a programozási szintaxis helyesnek tűnik, de a kód sikertelen, amikor a VBA megpróbálja végrehajtani.,
például nyissa meg a Visual Basic szerkesztőt, majd módosítsa az érték tulajdonság nevét ValueX-re a makróban, szándékosan futásidejű hiba bevezetésével, mivel a Tartományobjektumnak nincs ValueX nevű tulajdonsága. Menjen vissza az Excel dokumentumba, nyissa meg a makrók párbeszédpanelt, majd futtassa újra a Macro1 programot. Látnia kell egy Visual Basic üzenetmezőt, amely megmagyarázza a futási időt a szöveggel: “Az objektum nem támogatja ezt a módszert.”Bár ez a szöveg egyértelmű, válassza a hibakeresés lehetőséget, hogy többet megtudjon.,
amikor visszatér a Visual Basic szerkesztőhöz, egy speciális hibakeresési módban van, amely sárga kiemelést használ a sikertelen kódsor megjelenítéséhez. Amint az várható volt, a ValueX tulajdonságot tartalmazó sor kiemelésre kerül.
módosíthatja a futó VBA kódot, ezért módosítsa a ValueX értéket értékre, majd válassza ki a kis zöld lejátszás gombot a hibakeresés menü alatt. A programnak újra normálisan kell futnia.
jó ötlet megtanulni, hogyan kell a hibakeresőt szándékosan használni hosszabb, összetettebb programokhoz., Legalább tanulja meg, hogyan állíthat be töréspontokat a végrehajtás leállításához egy olyan ponton, ahol meg szeretné nézni a kódot, hogyan adhat hozzá órákat, hogy megnézze a különböző változók és tulajdonságok értékeit a kód futásakor, valamint hogyan léphet át a kódsoron soronként. Ezek a beállítások mind a hibakeresés menüben érhetők el, a komoly hibakereső felhasználók általában megjegyzik a mellékelt billentyűparancsokat.,
referenciaanyagok használata nos
az Office Helpbe beépített fejlesztői hivatkozás megnyitásához nyissa meg a Súgó hivatkozást bármely irodai alkalmazásból a szalag kérdőjelének kiválasztásával vagy az F1 megnyomásával. Ezután a keresőgomb jobb oldalán válassza ki a legördülő nyilat a tartalom szűréséhez. Válassza Ki A Fejlesztői Hivatkozást. Ha nem látja a tartalomjegyzéket a bal oldali panelen, válassza ki a kis könyv ikont a megnyitáshoz, majd bontsa ki az objektummodell hivatkozását onnan.
5.ábra., A fejlesztői segítség szűrése minden irodai alkalmazásra vonatkozik
az objektum modell referencia böngészésével töltött idő kifizetődik. Miután megértette a VBA szintaxis alapjait, valamint az irodai alkalmazás objektummodelljét, amellyel dolgozik, a találgatástól a módszeres programozásig halad.
természetesen a Microsoft Office Developer Center kiváló portál cikkek, tippek, közösségi információk.,
keresés fórumok és csoportok
minden programozó elakad néha, még elolvasása után minden referencia cikket tudnak találni, és elveszíti alvás éjjel gondolkodás különböző módon megoldani a problémát. Szerencsére az Internet elősegítette a fejlesztők közösségét, akik segítenek egymásnak a programozási problémák megoldásában.
Az “office developer forum” internetes keresései több vitacsoportot fednek fel. Kereshet az “office development” vagy egy leírást a probléma, hogy felfedezzék fórumok, blogbejegyzések, cikkek, valamint.,
ha mindent megtett, hogy megoldja a problémát, ne féljen feltenni kérdését egy fejlesztői fórumra. Ezek a fórumok szívesen üzenetét újabb programozók, valamint sok a tapasztalt fejlesztők szívesen segít.
az alábbiakban néhány etikett pontot kell követni, amikor egy fejlesztői fórumra tesz közzé:
-
mielőtt közzéteszi, keresse meg a webhelyen egy GYIK-ot vagy olyan iránymutatásokat, amelyeket a tagok követni akarnak. Győződjön meg róla, hogy az irányelvekkel összhangban lévő tartalmat a fórum megfelelő részében közzéteszi.,
-
tartalmaz egy tiszta és teljes kódmintát, és fontolja meg a kód szerkesztését, hogy mások számára tisztázza, ha ez egy hosszabb kódrészlet része.
-
világosan és tömören írja le a problémát, és foglalja össze azokat a lépéseket, amelyeket a probléma megoldásához tett. Szánjon időt arra, hogy írjon a bejegyzést, valamint akkor, különösen, ha ideges vagy siet. Mutassa be a helyzetet oly módon, hogy értelme legyen az olvasóknak, amikor először olvassák el a problémás nyilatkozatot.
-
Légy udvarias és fejezd ki elismerésedet.,
tovább megy a programozással
bár ez a cikk rövid, és csak a VBA és a programozás felületét karcolja meg, remélhetőleg elég a kezdéshez.
Ez a szakasz röviden néhány további kulcsfontosságú témát tárgyal.
változók
a cikk egyszerű példáiban manipulálta azokat az objektumokat, amelyeket az alkalmazás már létrehozott. Előfordulhat, hogy saját objektumokat szeretne létrehozni az alkalmazásban ideiglenes használatra szánt értékek vagy más objektumokra való hivatkozások tárolására. Ezeket változóknak nevezik.,
változónak a VBA-ban való használatához meg kell mondania a VBA-nak, hogy a változó milyen típusú objektumot képvisel a Dim utasítás használatával. Ezután beállítja annak értékét, majd más változók vagy tulajdonságok beállítására használja.
Dim MyStringVariable As String MyStringVariable = "Wow!" Worksheets(1).Range("A1").Value = MyStringVariable
elágazás és hurkolás
a cikkben szereplő egyszerű programok egyszerre egy sort hajtanak végre felülről lefelé. A programozás valódi ereje abból a lehetőségből származik, amelyet meg kell határoznia, hogy mely kódsorokat kell végrehajtani egy vagy több megadott feltétel alapján. Ezeket a képességeket még tovább bővítheti, ha sokszor megismételheti a műveletet., Például a következő kód kiterjeszti a Macro1-et.
írja be vagy illessze be a kódot a Visual Basic szerkesztőbe,majd futtassa. Kövesse a megjelenő üzenetmezőben található utasításokat, majd módosítsa a szöveget az A1 cellában a Wow-tól! igen! és futtassa újra, hogy lássa a hurok erejét. Ez a kódrészlet a változókat, az elágazást és a hurkolást mutatja be. Olvassa el figyelmesen, miután látta, hogy akcióban, majd próbálja meg meghatározni, hogy mi történik, mint minden sor végrehajtja.
az összes irodai alkalmazásom: példa kód
itt van néhány szkript, amelyet meg kell próbálni; mindegyik megoldja a valós irodai problémát.,
hozzon létre egy e-mailt az Outlook
Sub MakeMessage() Dim OutlookMessage As Outlook.MailItem Set OutlookMessage = Application.CreateItem(olMailItem) OutlookMessage.Subject = "Hello World!" OutlookMessage.Display Set OutlookMessage = NothingEnd Sub
vegye figyelembe, hogy vannak olyan helyzetek, amikor esetleg automatizálni szeretné az e-mailt az Outlook programban; sablonokat is használhat.
üres sorok törlése egy Excel munkalapon
vegye figyelembe, hogy kiválaszthat egy cellaoszlopot, majd futtathatja ezt a makrót, hogy törölje az üres cellával rendelkező kijelölt oszlop összes sorát.
Törlés üres mezőkbe a PowerPoint
Sub RemoveEmptyTextBoxes() Dim SlideObj As Slide Dim ShapeObj As Shape Dim ShapeIndex As Integer For Each SlideObj In ActivePresentation.Slides For ShapeIndex = SlideObj.Shapes.Count To 1 Step -1 Set ShapeObj = SlideObj.Shapes(ShapeIndex) If ShapeObj.Type = msoTextBox Then If Trim(ShapeObj.TextFrame.TextRange.Text) = "" Then ShapeObj.Delete End If End If Next ShapeIndex Next SlideObjEnd Sub
figyelmét, hogy ez a kód hurkok keresztül az összes diák, majd töröl minden mezőkbe, hogy nincs szöveg., A count változó csökken a növekmények helyett, mivel minden alkalommal, amikor a kód töröl egy objektumot, eltávolítja az objektumot a gyűjteményből, ami csökkenti a számlálást.
másolja a kapcsolatot az Outlookból a Wordbe
Sub CopyCurrentContact() Dim OutlookObj As Object Dim InspectorObj As Object Dim ItemObj As Object Set OutlookObj = CreateObject("Outlook.Application") Set InspectorObj = OutlookObj.ActiveInspector Set ItemObj = InspectorObj.CurrentItem Application.ActiveDocument.Range.InsertAfter (ItemObj.FullName & " from " & ItemObj.CompanyName)End Sub
vegye figyelembe, hogy ez a kód átmásolja az Outlookban jelenleg megnyitott kapcsolatot Az open Word dokumentumba. Ez a kód csak akkor működik, ha van egy kapcsolat, amely jelenleg megtekinthető az Outlook programban.
támogatás és visszajelzés
kérdése vagy visszajelzése van az Office VBA-val vagy a dokumentációval kapcsolatban?, Kérjük, olvassa el az Office VBA támogatást és visszajelzést útmutatást arról, hogyan kaphat támogatást és visszajelzést.